В C# существует тип члена, который называется свойством. Это позволяет вам легко и просто определять частное поле и предоставлять простые или сложные геттеры и сеттеры, экономя пространство, не имея необходимости определять целые методы. В Java нет ничего подобного, и из того, что я вижу, общий консенсус заключался в том, чтобы сосать его и определить полные методы 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;
}
}
С этой реализацией, вы можете определить простые свойства, которые требуют только добытчиков и сеттеров: final Property<String> name = new Property<>("Dog");
Или более продвинутых варианты like the one that MSDN provides for 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;
}
};
...
Какими будут плюсы и минусы этого решения?
В соответствии с его примером это будет 'object.Hours.set (3600.0)', и это найти, но я пока не вижу преимущества. – omainegra