我对以下内容缺乏理解:如果我使用“速记”创建内部类的实例,即使我没有创建它的显式实例,访问外部类也是一个坏主意吗?
例如,考虑以下代码:
class OuterClass
{
int i;
OuterClass() { i = 2; }
class InnerClass
{
int get_parent_i() { return (OuterClass.this.i); }
}
}
以下编译并返回预期结果(2):
OuterClass.InnerClass ic = new OuterClass().new InnerClass();
System.out.println(ic.get_parent_i());
我的困惑源于这样一个事实,即我没有显式创建 OuterClass 对象来实例化 InnerClass 对象,尽管无论如何似乎都存在。有人能告诉我发生了什么吗,如果我出于任何原因访问或忘记幻影实例?
太感谢了!