Java で不変メンバーを持つクラスがあった場合、次のようにします。
class MyClass {
private final String name;
private final int id;
myClass(String name, int id) {
this.name = name;
this.id = id;
}
String getName() { return name; }
int getId() { return id; }
}
Progress-4GL では、通常、次のような内容が表示されます。
CLASS MyClass :
DEFINE VARIABLE mcName as CHARACTER NO-UNDO.
DEFINE VARIABLE miId as INTEGER NO-UNDO.
CONSTRUCTOR PUBLIC MyClass(INPUT ipcName AS CHARACTER,
INPUT ipiId AS INTEGER):
ASSIGN mcName = ipcName
miId = ipiID.
END. /* constructor(char,int)*/
END CLASS. /* MyClass */
Progress 10.2B で、定数/最終変数を作成する機能が追加されたとのことでした。ただし、どこにも参照が見つかりません。FINAL
私のアーキテクト (バージョン 10.2A) では、それがキーワードと見なされていることがわかります。しかし、その背後にあるドキュメントは、単に私を逃れます.
Progress のドキュメントを検索しようとしたことがあるなら、私のジレンマをご存知でしょう。
Progress 10.2B で不変変数を使用するにはどうすればよいですか? 注意が必要な落とし穴はありますか?
ありがとう!
EDIT 1に関するドキュメントを見つけましたFINAL
。クラスとメソッドにのみ適用されるようです。私の現在のアプローチは
CLASS ImmutableString :
DEFINE PRIVATE VARIABLE mcValue AS CHARACTER NO-UNDO.
CONSTRUCTOR PUBLIC ImmutableString(INPUT ipcValue AS CHARACTER) :
ASSIGN mcValue = ipcValue.
END.
METHOD PUBLIC CHARACTER getValue() :
RETURN mcValue. /* Is a defensive copy required? */
END METHOD.
END CLASS.