在我的实习期间,我的一位同事给了我一个提示。我想知道这是否是个好方法。
我所做的是创建仅用于包含值而不具有任何实际功能(除了具有getter、setter和构造函数)的类。我像这样声明变量:
public class ObjectIUse{
Private String name;
public ObjectIUse(String name){
this.name = name;
}
public String getName(){
return name;
}
}
因为它应该始终保持不变,所以我不使用 setter。我的同事说我也可以这样做:
public class ObjectIUse{
public final String name;
public ObjectIUse(String name){
this.name = name;
}
}
现在我们不需要任何getter或setter,因为它是public的,但它也永远不会被改变,因为它是final的。
哪种方法更好?还是将它设置为private但同时又是final的比较好?我是说所有选项都可以工作,显然。我只是想知道哪个更好,为什么。
final
。这将强制您在构造函数中设置它并防止其更改 - 即使有人反射您的类实例。 - Charles Forsythe