【问题解决】记一个“奇怪”的java.lang.NoSuchMethodError错误

问题现象

近期本人负责的一个SpringBoot模块出现了java.lang.NoSuchMethodError报错,问题情况如下:

  • A类提供了setJumpType(String type),B类调用A类的setJumpType(String type)报错java.lang.NoSuchMethodError: com.xxx.A.setJumpType(Ljava/lang/String;)V
  • 在之前的发版的程序中,B类无变更,出现以上问题后,重新编译B类问题解决。

常见该问题原因与解决方法

  • 方法不存在:变更实现
  • 方法签名变更(一般博客中只关注到方法名与参数列表):修正方法名与参数列表

问题分析

  • 反编译代码和本地IDE源码调试均无该报错出现,方法是存在的
  • 检查A类是否存在方法名称和参数类型、数量变更,发现也没问题
  • 使用javap -v命令分析,经比较之前编译的与新编译的B类调用A类的方法签名中,返回值不同

处理方法

  • 原因确定是方法签名的返回值发生变更
  • 既然这个类是个DTO对象,就可以不直接用对方的DTO,重写一份放自己这边解决该问题,类似的情况只能靠发版前,在测试环境自测功能是否正常,有问题及时发现与解决

问题总结

  • java.lang.NoSuchMethodError错误出现于方法不存在和签名变更的情况
  • 方法签名格式:类路径.方法名(参数列表;)返回值类型
  • 返回值类型:void->V; 引用->L类路径;
  • 方法签名中除了类路径变更会导致ClassNotFound异常外,(方法名、参数列表、返回值类型)发生变化都会引起NoSuchMethodError错误,可根据错误原因进行处理
  • 编译的class文件中不仅包含自身源文件的编译结果,还包含引用的类与方法的签名信息,一旦签名发生变更就会出现兼容性问题,可能造成NoSuchMethodError错误。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/619913.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

北京软考职称、入户相关疑问解答

很多考生考软考证书是为了职称和入户,那么北京软考证书可以用于入户吗?软考职称认定有什么条件? 北京软考职称如何认定? 从以上图片描述我们可以知道,北京软考职称认定是有学历、资历要求的。北京近两年的“职称评审通…

HTTP 连接详解

概述 世界上几乎所有的 HTTP 通信都是由 TCP/IP 承载的,客户端可以打开一条TCP/IP连接,连接到任何地方的服务器。一旦连接建立,客户端和服务器之间交换的报文就永远不会丢失、受损或失序 TCP(Transmission Control Protocol&…

防火墙技术基础篇:网络地址转换(NAT):防火墙技术的核心机制

防火墙技术基础篇:网络地址转换(NAT):防火墙技术的核心机制 网络地址转换(NAT)是现代网络架构中不可或缺的一个组成部分,尤其在防火墙技术的实现中扮演着重要角色。本文旨在全面解读NAT的工作机…

pci设备枚举流程

概念 PCI设备:遵循PCI规范,工作在PCI局部总线环境下的设备。PCI局部总线规范指出,每个PCI设备可以包含最多8个PCI功能,每个PCI功能是一个逻辑设备 PCI桥设备:由于电子负载限制,每条PCI总线上可以挂载的设…

机器人学导论实验3-机器人定位中的直线拟合与提取

目录 1 实验目的 2 任务一:直线拟合 2.1 内容分析 2.2 过程分析 2.3 结果分析 3 任务二:直线提取 3.1 内容分析 3.2 过程分析 3.3 结果分析 4 遇到的问题和心得 机器人导论实验-机器人定位中的直线拟合与提取 1 实验目的 2 任务一: 直线…

Dubbo基本使用

Dubbo基本使用 1.项目介绍2.开发步骤2.1 启动注册中心2.2 初始化项目2.3 添加 Maven 依赖2.3.1 父pom.xml2.3.1 consumer模块和provider模块pom.xml 2.4 定义服务接口2.5 定义服务端的实现2.6 配置服务端 Yaml 配置文件2.7 配置消费端 Yaml 配置文件2.8 基于 Spring 配置服务端…

抖音本地团购商家采集软件使用指南

引言: 随着移动互联网的快速发展,抖音成为了一个极为受欢迎的短视频平台。在抖音上存在着大量的本地团购商家,对于一些用户来说,这是一个很好的在线购物平台。但是要想找到适合自己的本地团购商家,需要花费大量的时间和…

2.分布式-算法

目录 一、限流算法有哪些? 1.计数器算法(Counter-Based Algorithm) 2.固定窗口算法(Fixed Window) 3.滑动窗口算法(Sliding Window) 4.令牌桶算法(Token Bucket) 5.…

Spring底层入门(十一)

1、条件装配 在上一篇中,我们介绍了Spring,Spring MVC常见类的自动装配,在源码中可见许多以Conditional...开头的注解: Conditional 注解是Spring 框架提供的一种条件化装配的机制,它可以根据特定的条件来控制 Bean 的…

Redis 的数据库管理

Redis 提供了⼏个⾯向 Redis 数据库的操作,分别是 dbsize、select、flushdb、flushall 命令, 我将介绍这些常见的命令。 切换数据库 select dbIndex许多关系型数据库,例如 MySQL ⽀持在⼀个实例下有多个数据库存在的,MySQL 可以…

SQLZOO:The JOIN operation

数据表:game-gaol-eteam game idmdatestadiumteam1team210018 June 2012National Stadium, WarsawPOLGRE10028 June 2012Stadion Miejski (Wroclaw)RUSCZE100312 June 2012Stadion Miejski (Wroclaw)GRECZE100412 June 2012National Stadium, WarsawPOLRUS... goal …

mapreduce | 自定义Partition分区(案例2)

1.需求 统计每个手机号消费总金额,按照消费金额降序排序,最终联通、电信、移动分别写入不同的文件。 130、131、132(联通) 133(电信) 135、136、137、138、139 (移动) 手机号,消费记…

卡尔曼滤波状态估计

clear all; close all; clc; %% 上面是调用卡尔曼滤波 % 定义状态维数和初始条件 n 3; % 状态维数 q 0.2; % 过程噪声标准差 r 0.15; % 测量噪声标准差 Q q * eye(n); …

基于JAVA的微信小程序二手车交易平台(源码)

博主介绍:✌程序员徐师兄、8年大厂程序员经历。全网粉丝15w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

Redis经典问题:数据并发竞争

大家好,我是小米!今天我们要聊的话题是在大流量系统中常见的一个问题:数据并发竞争。不管是火车票系统还是微博系统,一旦出现数据并发竞争,都可能导致用户体验下降,甚至系统崩溃。那么,我们该如何解决这个问题呢?让我们一起来深入探讨! 数据并发竞争 当我们谈论大流…

LLM - Generate With KV-Cache 图解与实践 By GPT-2

目录 一.引言 二.KV-Cache 图解 1.Attention 计算 2.Generate WithOut KV-Cache 3.Generate With KV-Cache 4.Cache Memory Usage 三.KV-Cache 实践 1.WithOut KV-Cache 2.With KV-Cache 3.Compare Efficiency 四.总结 一.引言 LLM 推理中 KV-Cache 是最常见的优化…

若依-2主1从表(解决了编辑页面的添加按钮失效问题)

1. 3个表的分析(表名里不要加“t_”,会出现问题) 主表:t_qxk 这是试卷表 主表:t_ques_xk 这是题目表 子表:t_quescxk 这是试卷和题目的关系表,即同时是试卷和题目表的子表。 因为一张试卷可…

给centos机器打个样格式化挂载磁盘(新机器)

文章目录 一、先安装lvm2二、观察磁盘三、磁盘分区四、建PV五、建VG六、创建LV七、在LV上创建文件系统八、挂载到/home(1)临时挂载(2)永久挂载 九、最后reboot一下 一、先安装lvm2 yum install lvm2二、观察磁盘 三、磁盘分区 四…

QT 项目打包(为了后期远程实验用)

一、环境准备 1、一个项目工程 二、步骤 1、将编译器设置调整为Release模式 二、对项目重新编译构建 三、可以看到工程目录这个文件夹 打开工程目录文件夹的Release文件夹,我的路径如下 四、新建一个文件夹,将上述路径文件夹下的exe文件复制到新的文…

云相册APP

简介 一款用于云存照片的app,支持批量上传和下载照片。 平台技术 Android客户端:Kotlin 协程 Retrofit Server服务后端:Java SpringBoot 部署云服务器:华为云耀云服务器L实例 下载网址 小鲸鱼相册 Ps: 由于网站域名备案审核…