C# には、プロパティと呼ばれるタイプのメンバーが存在します。これにより、メソッド全体を定義する必要がないため、スペースを節約しながら、private フィールドを簡単かつ単純に定義し、単純または複雑な getter および setter を提供できます。Javaにはこのようなものはありません。私が見る限り、一般的なコンセンサスは、それを吸い上げて、プライベート変数の完全なゲッターおよびセッターメソッドを定義することです。
現在、私は次のクラスをいじっています:
public class Property<T> {
private T value = null;
public Property(){}
public Property(T initialValue){
value = initialValue;
}
public T get(){
return value;
}
public void set(T newValue){
value = newValue;
}
}
この実装では、getter と setter のみを必要とする単純なプロパティを定義できます。
final Property<String> name = new Property<>("Dog");
または、MSDN が C# 用に提供するもののような、より高度なオプション:
...
public double seconds;
public final Property<Double> Hours = new Property<Double>(){
@Override
public Double get() {
return seconds/3600;
}
@Override
public void set(Double newValue) {
seconds = newValue * 3600;
}
};
...
このソリューションの長所と短所は何ですか?