java – 在Android中是否有相当于MethodHandle的东西?

在我的项目中,我需要多次动态访问不同对象的getter和setter.因此,我想要一种动态访问方法的快速方法.

Java 7引入了MethodHandle类,用于动态执行给定类的方法.从我所看到的JDK的Android端口上没有这样的东西.除了使用标准反射类之外,是否有可用于规避此问题的解决方法?

最佳答案 你显然可以获得适当的Method对象并调用它.

但是如果你想要更快的东西,你可以在运行时生成一个调用目标方法的类.所以你使用普通反射找到方法,生成一个MethodCaller类,它实现你事先定义的一些接口(callMethod()?),加载新生成的类并使用它.有一个与android运行时here兼容的库和一个列出其他可能的替代品here的长讨论.

虽然这是可行的,但它肯定不容易,我建议尝试正常反射和测量性能.也许它会运作得很好.

点赞