java编译后出现:类名$1.class和 $2.class

createh55个月前 (12-22)技术教程42

起因:更改了某个类,加了两个java 的comparator比较器,通过内部类的方式实现。因为仅改了一个类所以后面发布的时候就采用增量发布,直接替换.class并重启服务器,之后访问与该类相关接口都会报错说找不到xxxx$1.class 和xxxx$2.class。

解决:查看重编译后的文件夹确实有编译出xxxx$1.class 和xxxx$2.class文件,将两个文件也一同发布后重启服务器,恢复正常。


结论:java编译后的文件名字带有$接数字的就是匿名内部类的编译结果。全量发布的时候可以不会发现缺少,但如果做增量发布,又有使用到内部类就需要把相应的xxxx$1.class 和xxxx$2.class一起发布,本次使用了两个内部类所以产生了两个文件。

相关文章

编写属于你的第一个Java程序 这是我的第一个java程序怎么写

前言在前面的文章中我们已经安装好了Java开发与运行环境,所以在本篇中将介绍如何编写一个简单的Java程序,然后对源码进行编译,最后执行,查看运行效果。编写属于你的第一个Java程序使用文本编辑器编写...

Java学习开发需要的工具 java开发需要学哪些东西

Java学习开发需要用到的工具利用空闲的时间整理了一下Java开发学习工作中会用到的工具。一、Java开发学习首先需要有Java运行环境。下载Java jdk,下载完成后安装jdk,一般一直Next...