【Java】Java 反射 object is not an instance of declaring cla

【Java】Java 反射 object is not an instance of declaring class

1.背景

我想用Java反射出一个类的方法,并且传参执行

public class MetricInFields implements Serializable {

public RowTypeInfo getRowFields(SqlSessionFactory sqlSessionFactory, String dicName){

RowTypeInfo rowTypeInfo = new RowTypeInfo();

return rowTypeInfo;

}

}

测试代码如下

Class> clazz = Class.forName(className);

Method method = clazz.getMethod("getRowFields", SqlSessionFactory.class, String.class);

rowTypeInfo = (RowTypeInfo) method.invoke(null,factory,dicName);

但是报错空指针异常,然后我随便在invoke第一个参数传递的的时候,传入当前类报错

Caused by: java.lang.IllegalArgumentException: object is not an instance of declaring class

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

后来发现,当反射静态方法的时候,直接传入Null就可以了,但是如果不是静态了,如下

public class MetricInFields implements Serializable {

public static RowTypeInfo getRowFields(SqlSessionFactory sqlSessionFactory, String dicName){

RowTypeInfo rowTypeInfo = new RowTypeInfo();

return rowTypeInfo;

}

}

如果不是静态类,如下

public class MetricInFields implements Serializable {

public RowTypeInfo getRowFields(SqlSessionFactory sqlSessionFactory, String dicName){

RowTypeInfo rowTypeInfo = new RowTypeInfo();

return rowTypeInfo;

}

}

那么可以这样

Class> clazz = Class.forName(className);

Object obj = clazz.newInstance();

Method method = clazz.getMethod("getRowFields", SqlSessionFactory.class, String.class);

rowTypeInfo = (RowTypeInfo) method.invoke(null,factory,dicName);

【Java】Java 反射 object is not an instance of declaring cla相关教程

java反射invoke空指针_【Java】Java 反射 object is not an instance of declaring cla相关推荐

  1. java中避免空指针_在Java中避免空检查

    java中避免空指针 对于Java开发人员(从初级到专家)最糟糕的噩梦之一是空对象引用检查. 我很确定您已经看过几次这样的代码: public void addAddressToCustomer(Cu ...

  2. java项目----教务管理系统_基于Java的教务管理系统

    java项目----教务管理系统_基于Java的教务管理系统 2022-04-22 18:18·java基础 最近为客户开发了一套学校用教务管理系统,主要实现学生.课程.老师.选课等相关的信息化管理功 ...

  3. java.lang.IllegalArgumentException: object is not an instance of declaring class

    今天在使用反射的时候,出现了java.lang.IllegalArgumentException: object is not an instance of declaring class错误-具体是 ...

  4. java.lang.IllegalArgumentException: object is not an instance of declaring class 的解决办法

    问题概述 在项目开发的工作中,需要对数据报表进行导入导出的操作,为了方便快捷,使用的了EasyPOI,EasyPOI就像其名称一样,让报表操作的更容易些,它主要对POI进行了再封装,不像以前使用POI ...

  5. java反射的优化_请问Java反射的性能为什么比直接调用慢一个数量级左右?

    Method.invoke()本身要用数组包装参数:而且每次调用都必须检查方法的可见性(在Method.invoke()里),也必须检查每个实际参数与形式参数的类型匹配性(在NativeMethodA ...

  6. java socket 远程调用_使用Socket反射Java流操作进行方法的远程调用(模拟RPC远程调用)...

    写在前面 阅读本文首先得具备基本的Socket.反射.Java流操作的基本API使用知识:否则本文你可能看不懂... 服务端的端口监听 进行远程调用,那就必须得有客户端和服务端.服务端负责提供服务,客 ...

  7. java 反射创建属性_使用Java反射机制确定基本数据类型属性

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Java反射机制提供了一种强大的应用程序接口来帮助我们在运行时检测和执行对象上的操作.该机制允许程序员审视一个未知对象,并且获得它的属性,例如对象上的方法 ...

  8. java mysql jdbc 封装_利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包括增删改查、JavaBean反射原理,附源代码)...

    近期看老罗的视频,跟着完毕了利用Java操作MySql数据库的一个框架类JdbcUtils.java,完毕对数据库的增删改查.当中查询这块,包含普通的查询和利用反射完毕的查询,主要包含以下几个函数接口 ...

  9. java中 jacob作用_【JAVA】JACOB使用简介

    它允许在java中调用com接口自动组件,它使用JNI(本地调用程序)来进行本地调用COM库.它可运行在x86和支持32位和64位Java虚拟机 X64的环境. 测试源码包: 密码: ej9u JAC ...

最新文章

  1. php webapi验签,Asp.netCore3.0 WebApi从0到1手摸手教你写【5】增加接口参数签名验证...
  2. Redis集群两种配置方式
  3. linux comm 12,Linux comm命令
  4. UNITY中使用不安全代码的相关设置
  5. Android分渠道打包(Python 3.4 实现)
  6. 获取父线程 java_java子线程中获取父线程的threadLocal中的值
  7. 54 FI配置-财务会计-固定资产-主数据-更改评估组的关键词
  8. linux vlc 串流_linux下VLC的安装
  9. 创建的maven子项目怎么访问接口404_【经验分享】新手学Java编程语言怎么入门?...
  10. c语言输入身高计算标准体重_女生标准身高体重对照表
  11. 关于语言选择、输入和产出的关系
  12. 实现一维卷积神经网络
  13. bootstrap日期控件 只显示 年月
  14. 02-Swift学习笔记-元组类型
  15. btsync 分享资源
  16. 坐标3度带与6度带的知识(转载)
  17. 【运筹帷幄】关于阿里云服务器自己开启的6010端口
  18. vlan的端口隔离及端口优化——“道高一尺魔高一丈”
  19. openpyxl生成xslx-动态存储数据
  20. Android通过Canvas手绘一个折线图

热门文章

  1. 项目--教师日常办公平台中的活动图
  2. Kettle使用_27 行转列与列转行方法汇总
  3. Feature Pyramid Networks for Object Detection 总结
  4. linux2.6驱动学习笔记之字符驱动
  5. 关于kafka生产者相关监控指标的理解(未解决)
  6. (转)Eclipse New Server 【无法输入server name】
  7. 关于重写session实现的时候可能会导至nginx 502的问题
  8. 排错之网络映射缓存凭证记录导致备份计划任务失败
  9. 京东搞促销,天猫下黑手
  10. 重写Oracle的wm_concat函数,自定义分隔符、排序