我想知道是否有任何额外的优化我可以实现以提高Java中反射调用的速度.并不是说性能是令人望而却步的,但是我在考虑库中的某些代码时得到了一些我正在编写的代码在某个地方以紧密的方式实现.
考虑一种反射性调用的实用方法:
public static Object invoke(Object targetObject, String methodName, Object[] arguments, Class<?>[] signature)
Run Code Online (Sandbox Code Playgroud)
基本操作是
return method.invoke(targetObject, arguments);
Run Code Online (Sandbox Code Playgroud)
作为性能优化,我使用目标对象的类,方法名称和签名(其代码可能使用某些改进)的哈希来缓存方法,但除此之外,还有什么我可以做的吗?我听说过InvokeDynamic的一些早期实现的参考听起来很有希望,但我只是假设它们可能还不适用,并且我打算使用自己的字节代码操作,因为我希望保持实用程序简单(但速度快).
干杯.