内部类,匿名内部类,多个类的总结记录

内部类,匿名内部类,多个类的总结记录

开头

​ 今天开发遇到个问题,报错信息是NoClassDefFoundError ,找不到类,这个类是个内部类(当时我是这么认为的),也发现服务器上确实没有编译后的内部类class文件。查看本地代码是有内部类的class的,但是这个class不是外部类$内部类.class的形式,也很奇怪。。

各种搜索问题

  • NoClassDefFoundError 是java虚拟机报的错,是运行时异常,无法提前处理。其实就是找不到类。

  • 各种内部类,以及他们编译后的文件:

    • 内部类
       public class Outer{
       class inner{
           
       }
     }
    

    这样编译后的结果是:Outer.class、Oueter$inner.class 两个文件

    • 匿名内部类
    public class Outer{
        public Outer{
            new inner(){
                @override
                public void test(){}
            }
        }
        interface inner{
            test();
        }
    }
    

    这样编译后的结果是:Outer.class、Oueter$1.class 两个文件

    • 多个类(一个java文件)
    public class a{
        
    }
    class b{}
    class c{}
    

    这样编译后的结果是:a.class、b.class、c.class 三个文件,我其实代码是这样的,我一直以为我写的是内部类。

  • 至于为什么服务器上没有编译出我需要的类,还是没搞明白,目前是第三种情况改为第一种情况,等明天部署看看会不会好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值