Para hacer una clase inmutable lo que puedo hacer es:hacer una clase inmutable en java
1) Hacer una clase final
2) no proporcionan los emisores
3) marcar todas las variables como definitiva
pero si mi clase tiene otro objeto de alguna otra clase, entonces, somone puede cambiar el valor de ese objeto
class MyClass{
final int a;
final OtherClass other
MyClass(int a ,OtherClass other){
this.a = a;
this.other = other;
}
int getA(){
return a;
}
OtherClass getOther(){
return other;
}
public static void main(String ags[]){
MyClass m = new Myclass(1,new OtherClass);
Other o = m.getOther();
o.setSomething(xyz) ; //This is the problem ,How to prevent this?
}
}
no escriba el método de configuración –
@LuiggiMendoza, creo que Other/OtherClass está destinado a ser una clase que no controla. –
Escribe un contenedor para la otra clase y crea getters solamente. – Nican