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


    一、问题描述

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

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

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

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

    二、解决方法

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

  • 相关阅读:
    SonarQube
    Gerrit
    Jenkins
    Jenkins
    GitLab
    GitLab
    GitLab
    centos7配置国内yum源
    CentOS7 ping: unknown host www.baidu.com
    VirtualBox下安装CentOS7系统
  • 原文地址:https://www.cnblogs.com/jxxblogs/p/13748712.html
Copyright © 2020-2023  润新知