【发布时间】:2011-01-21 03:45:37
【问题描述】:
在 Java 中,您可以在单个文件中定义多个顶级类,前提是其中最多有一个是公共的(请参阅JLS §7.6)。例如,请参见下文。
这种技术是否有一个简洁的名称(类似于
inner、nested、anonymous)?JLS 表示系统可能强制执行这些辅助类不能是
referred to by code in other compilation units of the package的限制,例如,它们不能被视为包私有。这真的会在 Java 实现之间发生变化吗?
例如,PublicClass.java:
package com.example.multiple;
public class PublicClass {
PrivateImpl impl = new PrivateImpl();
}
class PrivateImpl {
int implementationData;
}
【问题讨论】:
-
+1 好问题。我从来没有真正考虑过这件事,因为几乎没有必要这样做。
-
请注意,这是一个退化特征;如果 java 从一开始就有嵌套类,那将永远不可能。