反射方法调用缓存

问题描述

我正在尝试使用反射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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...