我刚发现一个内部类可以像这样访问另一个内部类的私有成员:
public class TestOutter {
class TestInner1 {
private int mInt = 1;
}
class TestInner2 {
public int foo(TestInner1 value) {
return value.mInt;
}
}
}
TestInner2类的foo方法可以访问TestInner1类的私有成员mInt。
但我以前从未见过这种情况。我不知道让TestInner2中的代码可以访问TestInner1的私有成员的意义是什么。
我在谷歌上搜索内部类,没有一个搜索结果显示内部类具有这个特性。我还查阅了Java语言规范,但它仍然没有提到这一点。
TestInner2
是TestOutter
的一个组成部分,因此既然TestOutter
可以访问TestInner1
,那么TestInner2
也可以。在我看来这很好。 - Ran Eldan