什么是Java中的"内部类仿真"?

Joh*_*oth 6 java eclipse emulation eclipse-jdt

刚刚发现这一点,同时阅读eclipse JDT的文档:

IMethodBinding.getParameterTypes():...注意:结果不包括内部类仿真引入的合成参数.

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

Ste*_*n C 4

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

然而,典型 JVM实现内部类的方式有一点棘手,这就是合成构造函数参数的作用所在。发生的情况是,无论是否嵌套,JVM 都会以相同的方式实现类。没有特殊的字节码用于引用封闭类中的变量,因此编译器生成通过合成属性获取它们的代码。

更多详细信息可以在原始的 Sun Java 1.1 内部类规范中找到