我有一个封装了一些功能的私有(private)内部类。它填充两个 ArrayList。我有只返回私有(private)变量的 ArrayLists 的 setter/getter 。需要 setter/getter 吗?我可以只使 ArrayLists 成为公共(public)实例变量吗?最佳做法是什么?
public class OuterClass {
//Stuff the OuterClass does
private class InnerClass {
private ArrayList<String> array1;
private ArrayList<String> array2;
public InnerClass() {
//Init and do stuff w/ arrays
}
public ArrayList<String> getArray1() {
return array1;
}
public ArrayList<String> getArray2() {
return array2;
}
}
}
最佳答案
Yes 可以使 Arraylist public,尽管最佳实践是使用 getter。这允许您构建副作用,例如
- 执行计算
- 检查约束
- 延迟初始化
- 提供可能继承的方法
它还允许您在将来修改类的内部结构而不会违反契约(Contract)。
关于java - Java 中的 setter/getter ——我正在做的事情安全吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7826161/