java.lang.NoSuchMethodError 介绍
2020-12-13 15:13
标签:work and mic ONBUILD bsp run 代码 feign mamicode 1、 错误内容:java.lang.NoSuchMethodError: com.Boot: method 此提示内容指,com.Boot没有参数为空的构造函数。提示中指明了异常所在的类和对应的函数。 2、 java文档: 说的很清楚了,是类的变化不兼容导致的异常。通俗的说法是,调用方使用的类定义和加载的类定义不一样,加载的类实际上没有将要调用的方法。
* Normally, this error is caught by the compiler; this error can
* only occur at run time if the definition of a class has
* incompatibly changed.
*
* @author unascribed
* @since JDK1.0
*/
public
class NoSuchMethodError extends IncompatibleClassChangeError {
3、 如何制造一个NoSuchMethodError: 这里提供两个java代码。放在com目录下。依次执行以下命令: 4、原因说明 实际使用的类文件不配套导致的异常。即通常所说的jar包版本不一致导致此问题。 5、实际举例 Spring Boot 2.x 使用 feign 出现此错误。Spring Cloud 1.1调用的构造函数是 new SpringApplicationBuilder(new Object[0]) ,但Spring Boot 2.1 提供的构造函数只有一个 public SpringApplicationBuilder(Class... sources) { ` 6、解决方式:换依赖jar的版本 java.lang.NoSuchMethodError 介绍 标签:work and mic ONBUILD bsp run 代码 feign mamicode 原文地址:https://www.cnblogs.com/afraidToForget/p/11576032.html/**
* Thrown if an application tries to call a specified method of a
* class (either static or instance), and that class no longer has a
* definition of that method.
*
javac com/Boot.java
javac com/Cloud.java
vim com/Boot.java 把Boot的无参构造函数注释掉,把有参构造函数的注释打开
javac com/Boot.java 重新编译Boot的类文件,最终结果没有无参构造函数
java com/Cloud 此处会出现NoSuchMethodError异常
方法提供方
package com;
public class Boot{
private String name;
// public Boot (String name){
// this.name = name;
// } 注意这里的两个构造函数。
public Boot (){
}
public void run(){
System.out.println(name);
}
}
======================
调用方
package com;
import com.Boot;
public class Cloud{
public Cloud (){
}
public static void main(String[] args){
new Boot().run();
}
}
this.application = this.createSpringApplication(sources);
}java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.
文章标题:java.lang.NoSuchMethodError 介绍
文章链接:http://soscw.com/essay/34910.html