java反射调用方法NoSuchMethodException的解决方案
java反射调用方法NoSuchMethodException
1、方法定义成 public类型.
2、getMethod传参要正确
- 比如调用定义的:public void show(Object obj)
- 要这样调用 clazz.getMethod("show",Object.class);而不是obj.class
3、invoke时invoke(this,obj)
- 传参要正确,看好传的是对象,this是调用该方法的类实例对象,obj是方法的实参
NoSuchMethodException问题总结
1、编译异常,这个很容易发现并解决
- method真的没有
- 替换jar包没有clean project。
2、编译正常,运行报错
这是一个遇到之后让人纳闷的异常,脑袋不转弯的时候真的容易被卡住。
这时只要去编译目录下:
1)查看下相应的jar包是否被引入;如果没有,咋把jar包拷入相应的目录;pom项目的话则检查下依赖的scope是不是provided等不随项目一起发布的配置。
2)检查下对应的jar包是否存在多个版本,导致没有加载期望的jar包,我遇到的问题就是这样的。
3)重新导入项目,下策,但是绝大多数情况有效。但有时候因为项目很复杂、时间紧张等原因不适合这么做。
4)如果以上方法试了,没有别的解决方式。实在搞不定,找人帮忙解决。浪费太多时间在环境问题上,不明智,也没啥丢人的,有时候可能只是说一说自己就明白了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
Spring Boot中Elasticsearch的连接配置原理与使用详解
在Spring Boot中,我们可以通过Elasticsearch实现对数据的搜索和分析,本文将介绍Spring Boot中Elasticsearch的连接配置、原理和使用方法,感兴趣的可以了解一下2023-09-09原理分析SonarQube中IdentityProvider账户互斥现象
这篇文章主要为大家介绍分析SonarQube中IdentityProvider账户互斥现象原理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步2022-02-02java:java.lang.ExceptionInInitializerError报错解决过程
这篇文章主要给大家介绍了关于java:java.lang.ExceptionInInitializerError报错的解决过程,java.lang.ExceptionInInitializerError 是一个异常,表示在初始化一个类的静态变量或静态块时发生了错误,需要的朋友可以参考下2023-10-10JAVA中ListIterator和Iterator详解与辨析(推荐)
这篇文章主要介绍了JAVA中ListIterator和Iterator详解与辨析,需要的朋友可以参考下2017-04-04
最新评论