假设我们有
public class parent {
private string x;
private class child {
void doSomething(){
System.out.println(x);
}
}
}
当然这是一个简单的例子,但一般来说我应该像这样使用外部类中的私有变量,还是应该避免这种情况并通过构造函数中的参数将它们传递给内部类?
答案 0 :(得分:3)
功能可能不一样。如果重新分配实例变量,将它们传递给构造函数将改变功能。并且有两个副本会使代码更难阅读。
如果实例变量没有改变且类真的在一起,那可能就好了。确保内部类真的应该是一个。你正在将这些类与这种技术紧密结合起来,这使得重构变得更加困难。
对于事件处理程序(一种常见的内部类类型)等,访问外部类的变量是常见且合乎逻辑的。