Для меня проблема состоит из двух частей:
- Все эти дополнительные методы {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. Однако он по-прежнему использует методологию установки/получения, только без префиксов установки/получения.
person
Bradley Willcott
schedule
28.11.2019