如何解决反射方法调用缓存
我正在尝试使用反射Method.invoke()基于用户输入的文本执行方法,该文本指定要执行的类,方法和参数。像这样:
public Object invokeInput(String className,String methodName,List<Object> list) {
try {
Class<?> cls = Class.forName(className);
Method method = cls.getmethod(methodName,list.get(0).getClass());
return method.invoke(null,list.get(0));
} catch (Exception e) {
System.out.println(e);
}
return false;
}
一切工作均按首次执行该方法的预期方式进行,但是当提供方法参数Object(对象中的first Object)时,似乎对第一个invoke()的结果进行保存/缓存并返回给该方法的所有后续调用。 “ list”)具有相同的引用,即使该参数Object的内部字段已更改,并应导致返回不同的方法。
是否要避免这种情况?或以某种方式清除缓存?
非常感谢您的帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。