当前位置: 首页 > 知识库问答 >
问题:

Android中是否有与MethodHandle等价物?

胡景澄
2023-03-14

Java7引入了MethodHandle类,用于动态执行给定类的方法。据我所知,在JDK的Android端口上没有这样的东西。除了使用标准的反射类之外,是否有任何解决方法可以用来绕过这个问题?

共有1个答案

柯波峻
2023-03-14

显然,您只需获取适当的方法对象并调用它。

但是如果您想要更快的东西,您可以在运行时生成一个调用目标方法的类。因此,您使用普通反射定位方法,生成一个MethodCaller类,实现您预先定义的某个接口(callMethod()?),加载新生成的类并使用它。这里有一个与android运行时兼容的库,这里还有一个很长的讨论,列出了其他可能的替代方案。

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

 类似资料: