匿名内部类编译生成的class文件

一、问题描述

  跳槽到的新公司,相比原来的公司,软件开发非常不规范,经常各种坑。项目部署到生产现场之后,出现问题,我在修改之后编译生成class文件,然后将class文件发给现场的技术支持,技术支持将class文件直接替换到生产环境,然后重启服务,这样的操作需要非常小心,因为客户随时都在用着系统。最近现场又发现了一个问题,我修改代码之后将calss文件发给现场,现场部署之后发现报错,显示类找不到。我修改后的文件中使用到了匿名内部类,正是这个内部类就没有被找到。下面是正常代码:

 

 我将对应的class文件复制到桌面,重新用idea打开,显示如下:

 

从图中可以看出明显是找不到1这个类,突然想到这应该是因为编译出的class应该不止一个文件,于是在idea对应的class文件右键show in Explorer:

 

 果然发现编译产生了两个class文件,报错的原因是因为我替换的时候只替换了一个calss文件,所以报找不到类的错误。

二、解决方法

将编译生成的两个class文件同事替换,问题解决。匿名内部类再编译的时候会产生两个class文件,替换的时候一定要注意。

 

posted @ 2020-09-29 11:18  莫等、闲  阅读(1300)  评论(0编辑  收藏  举报