刚刚在阅读 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/