java - Groovy 如何访问 Java 类的私有(private)方法?

标签 java groovy jvm bytecode access-modifiers

Groovy 可以访问 Java 类的私有(private)方法和变量。 Groovy 如何在幕后做到这一点?是因为 MethodHandle 类使用了 invokedynamic 字节码指令吗?我认为 Java 使用 invokespecial 指令来调用 private 方法,使用 invokevirtual 来调用 public 正确的访问修饰符?

最佳答案

Groovy 是用 Java 编写的,所以它不希望直接依赖字节码,它不使用 Reflection API .

有关更多详细信息,请查看 java.lang.reflect在源代码中,您将看到它如何在幕后使用反射 API。

关于java - Groovy 如何访问 Java 类的私有(private)方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40929264/

相关文章:

grails - Grails-无法创建类[QuartzGrailsPlugin]的新实例!

java - 输出最终对象的 JVM 选项

java - 通过后退按钮从其他 Activity 更新 Recyclerview onResume 的一项的正确方法

groovy - 迭代并打印常规闭包的内容

json - 如何使用 groovy 获取确切的 json 节点实例?

jenkins - 让 Jenkins 建立失败

java - 如何在运行时发出和执行 Java 字节码?

java - 如何制作在调整 JFrame 大小时会调整大小的图像?

java - 在 Activity 中显示转换后的文件

java - 新扫描仪出错