我是靠谱客的博主 成就宝贝,最近开发中收集的这篇文章主要介绍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 is not an instance of declaring class所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部