Swego czasu doradzaliście mi by robić klasy immutable, z polami publicznymi, bo tak jest modnie. Widziałem w kodzie u @jarekr000000 , że jak robił atrybuty publiczne to dodawał final.
Spróbowałem tak zrobić w klasie, która implementuje interfejs i zonk:
interface Message {
Integer getValue();
}
class MessageImpl implements Message {
public final Integer value;
public MessageImpl(Integer value) {
this.value = value;
}
Integer getValue() {
return value;
}
musiałbym tak jak powyżej dać 2 możliwości dostępu do value
: messageImpl.value
i messageImpl.getValue()
albo usunąć interfejs Message
. Ale jak go usunę to okaże się, że wysypie się klasa:
class Container {
public (Message message) {
message.getValue() // ...
// ...
}
// ...
}
a założmy, że klas implementujących tego Message
jest wiele.