Может ли кто-нибудь дать мне список языков, где неизменяемость класса может быть принудительно проверена компилятором и легко протестирована?
Мне нужно быть может делать что-то вроде:
class immutable Person {
private String name = "Jhon"; // lets say the String is mutable
public Person(String name) {
this.name = name; // ok
}
public void setName(String newName) {
this.name = newName; // does not compile
}
public void getName() {
return this.name; //returns reference through which name can't be mutated
}
private void testImmutability() {
getName().setFirstChar('a'); // does not compile
}
}
РЕДАКТИРОВАТЬ:
Дополнительные пояснения см. здесь .