编译器如何知道嵌套类型,例如:
- 嵌套内部类
- 匿名类
- 嵌套接口(interface)
.....等等
需要清晰......
最佳答案
编译器提取内部类并为每个创建单独的 *class
文件。内部类名称创建为 OuterClassName$InnerClassName
。匿名内部类没有名称,因此它们的名称被创建为 OuterClassName$1
、OuterClassName$2
等。
内部类使用语法 OuterClassName.this
对外部类的实例进行特殊引用。
由于内部类被编译成单独的类文件,JVM 根本不处理内部类。它处理具有上述“特殊”名称的常规类。
关于java - 编译器和运行时系统如何处理java中的嵌套类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14702525/