java - Java 中的 "inner class emulation"是什么?

标签 java eclipse eclipse-jdt emulation

刚刚在阅读 eclipse JDT 的文档时发现了这一点:

IMethodBinding.getParameterTypes(): . . . Note: The result does not include synthetic parameters introduced by inner class emulation.

我在 JLS 中找不到任何对内部类仿真的引用...有人知道这个仿真是什么吗?举个例子,也会有所帮助。 :)

最佳答案

我认为 Eclipse 文档编写者对术语的理解有点松散。就JLS而言,内部类就是内部类,不需要模拟。

但是,内部类通过典型的 JVM 实现的方式有点棘手,这就是合成构造函数参数进入等式的地方。正在发生的事情是 JVM 实现相同的类,无论它们是否嵌套。没有特殊的字节码来引用封闭类中的变量,因此编译器会生成通过合成属性获取它们的代码。

更多详细信息可在原始 Sun Java 1.1 Inner Classes Specification. 中找到

关于java - Java 中的 "inner class emulation"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4476657/

相关文章:

Java:父类(super class)的接口(interface)泛型

java - 生成可验证的随机数 - Java

java - Eclipse项目运行时问题

java - 寻找虚无的东西

java - 如何将旧文件从 Java Eclipse 工作区复制到新工作区?

java - 如何实现启动屏幕并从正确渲染的状态转到 MainActivity

java - Hibernate 在 @Entity 中定义表

java - 如何在 Eclipse-Helios JDT 中专门抑制 "Comparing identical expressions"

java - 使用 Eclipse 配置文件从命令行运行 JDT 编译器

java codeformatter抛出NullPointerEception