java - 编译器和运行时系统如何处理java中的嵌套类型?

标签 java jvm nested-class anonymous-class anonymous-inner-class

编译器如何知道嵌套类型,例如:

  • 嵌套内部类
  • 匿名类
  • 嵌套接口(interface)

.....等等

需要清晰......

最佳答案

编译器提取内部类并为每个创建单独的 *class 文件。内部类名称创建为 OuterClassName$InnerClassName。匿名内部类没有名称,因此它们的名称被创建为 OuterClassName$1OuterClassName$2 等。

内部类使用语法 OuterClassName.this 对外部类的实例进行特殊引用。

由于内部类被编译成单独的类文件,JVM 根本不处理内部类。它处理具有上述“特殊”名称的常规类。

关于java - 编译器和运行时系统如何处理java中的嵌套类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14702525/

相关文章:

java - 使用 PreferenceFragment 时从 Volley 获取空指针错误

java - 如何有效销毁Java Servlet中的 'session'?

c# - 值类型可以通过内联来实现吗?

eclipse - Eclipse 的最佳 JVM 设置是什么?

java - 如何获取调用站点可能目标的数量?

python - 在 Python 中覆盖嵌套类成员的更好方法是什么?

C++ 有一个嵌套类继承自另一个嵌套类

java - 处理多部分/表单数据请求失败。读取超时

Java instanceof 解决方法

java - Bloch Effective Java - 支持静态类而不是非静态类 - 有多少个实例?