【发布时间】:2010-03-02 23:00:07
【问题描述】:
在 Java 中,每当创建内部类实例时,它都会与外部类的实例相关联。出于好奇,是否可以将内部类与外部类的另一个实例相关联?
【问题讨论】:
-
除了它在未来的混淆Java竞赛中的潜力之外,还有什么意义?您知道,如果您想要一个可以与其父级解除关联的内部类,您可以将其声明为静态,对吗?
-
我觉得这个问题很有趣。有谁知道在 JLS 中的哪个位置指定了指向外部类的指针的命名方式?通过实验,我发现它似乎是
this$0,并根据需要附加了尽可能多的$(可能没有)。这实际上是指定的吗? -
好的,我刚刚发现第二级内部类使用
this$1代替。令人着迷! -
@Steve:这个问题纯粹是出于好奇。我无意使用此功能
-
@polygenelubricants - afaik,JLS 没有指定这一点。它(至少在理论上)是特定于 JVM/编译器实现的。这也是为什么做这种事情很疯狂的另一个原因。
标签: java