zoukankan      html  css  js  c++  java
  • 匿名内部类,静态内部类,非静态内部类,方法内部类,编译后的名字

    public class App
    {
    
        public static void main(String[] args)
        {
            
        }
        
        public TestInterface test()
        {
            return new TestInterface()
            {
            };
        }
        
        public TestInterface test2()
        {
            return new TestInterface()
            {
            };
        }
        
        
        interface TestInterface
        {
            
        }
        
        class InnerClass
        {
            public void innerClass()
            {
                class I
                {
                    
                }
                I i = new I();
                
            }
            public void innerClass2()
            {
                class I
                {
                    
                }
                I i = new I();
                
            }
        }
        
        static class Test
        {
            
            public TestInterface test()
            {
                return new TestInterface()
                {
                };
            }
        }
    
        
    }

    看下图.

    第一个App.class,没啥好解释的

    可以发现,如果类有名字,那么就是xxx$xx.class,对于没有名字匿名内部类,用数字代替类名,因为数字在语言规范里是不正确的类名,用户代码里面的类名不可能就是一个数字.

    第二个,对于方法体里面内部类,编译后的类名,xxx$xxx$数字+类名.class格式,一定要加数字,因为无法保证在另外一个方法里面不会出现同样的类名.

  • 相关阅读:
    图片处理连环画特效
    卡片翻页算法
    android 自定义属性
    android 中捕获全局异常
    c++ 学习笔记
    图片怀旧特效处理
    Linux 网络配置
    指针参数传递
    python 读写文件
    PopupWindow 点击外面取消
  • 原文地址:https://www.cnblogs.com/shuiyonglewodezzzzz/p/9463337.html
Copyright © 2011-2022 走看看