За мен проблемът е два:
- Всички тези допълнителни методи {get*/set*} претрупват кода на класа.
- НЕ можете да ги третирате като свойства:
public class Test {
private String _testField;
public String testProperty {
get {
return _testField;
}
set {
_testField = value;
}
}
}
public class TestUser {
private Test test;
public TestUser() {
test = new Test();
test.testProperty = "Just something to store";
System.out.printLn(test.testProperty);
}
}
Това е лесната задача, която бих искал да използвам отново. НЕ се налага да използвате синтаксис за извикване на „метод“. Може ли някой да даде някои отговори какво се случи с Java?
Мисля, че проблемът е и в ненужното претрупване в кода, а не в „трудността“ при създаването на сетери/гетери. Смятам ги за грозен код. Харесвам това, което има C#. Не разбирам съпротивата срещу добавянето на тази възможност към Java.
Текущото ми решение е да използвам „публични“ членове, когато защитата не е необходима:
public class IntReturn {
public int val;
}
public class StringReturn {
public String val;
}
Те ще бъдат използвани за връщане на стойност от, да речем, ламбда:
StringReturn sRtn = new StringReturn()
if(add(2, 3, sRtn)){
System.out.println("Value greater than zero");
}
public boolean add(final int a, final int b, final StringReturn sRtn){
int rtn = a + b;
sRtn.val = "" + rtn;
return rtn > 0; // Just something to use the return for.
}
Също така наистина не обичам да използвам извикване на метод за задаване или получаване на вътрешна стойност от клас.
Ако вашата информация се прехвърля като „неизменна“, тогава новият запис на Java може да бъде решение. Въпреки това, той все още използва методологията setter/getter, само без префиксите set/get.
person
Bradley Willcott
schedule
28.11.2019