我是靠谱客的博主 成就宝贝,这篇文章主要介绍java反射:object is not an instance of declaring class,现在分享给大家,希望可以做个参考。


/**
* <pre>
* <h3>通过反射执行某个方法,并将数据集放入cache中</h3>
* </pre>
*
* 方法实现呆完成
*
* @param key
* 缓存key
* @param _class
* 类名
* @param methodName
* 类方法名
* @param paramType
* 方法参数类型
* @param args
* 方法参数值
*/
public void reflect(String key, Class<T> _class, String methodName,
Class<Object>[] paramType, Object... args) {
try {
// cache判断
// 如果cache中没有这个值,则调用方法填充cache
Method method = _class.getMethod(methodName, paramType);
method.invoke(_class, args);
} catch (SecurityException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
}


执行到:

method.invoke(_class, args);

报错:
object is not an instance of declaring class
说明Class没有实例化;
解决办法:
由于没有实力化可以有如下两种方法:
1、反射方法定义成为static的,故被反射类就不需要实例化;
2、method.invoke(_class.newInstance(), args);

最后

以上就是成就宝贝最近收集整理的关于java反射:object is not an instance of declaring class的全部内容,更多相关java反射:object内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(106)

评论列表共有 0 条评论

立即
投稿
返回
顶部