如果您在Java中有一个私有(private)的静态嵌套类,是否仍建议使用getter和setter而不是直接进行字段访问?
一个例子。直接现场访问:
public class Application {
private List<MyInnerClass> myInnerClassList;
// ...
public void foo() {
MyInnerClass inner = new MyInnerClass();
inner.bar = 50;
myInnerClassList.add(inner);
}
private static class MyInnerClass {
private int bar;
}
}
与封装:
public class Application {
private List<MyInnerClass> myInnerClassList;
// ...
public void foo() {
MyInnerClass inner = new MyInnerClass();
inner.setBar(50);
myInnerClassList.add(inner);
}
private static class MyInnerClass {
private int bar;
public int getBar() {
return bar;
}
public void setBar(int bar) {
this.bar = bar;
}
}
}
最佳答案
视情况而定,但总的来说我认为还可以。
使用getter和setter的主要原因之一是向类用户隐藏实现细节,因此您可以轻松更改实现而不会影响用户。
在私有(private)内部类的情况下,这不是问题,因为您既是该类的编写者又是该类的用户,并且外面没有人可以使用它。
如果您只是用来将一些数据保存在一起,则不使用getter和setter会使代码更短,更易读。
但是,如果内部类更大且更复杂(通常不是这种情况),则应考虑使用getters/setter方法。例如,这将使您能够在代码中的bar
中添加边界检查。
关于java - 是否建议对私有(private)静态内部类使用封装?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15189065/