java中匿名内部类编译之后会生成什么

public class Stu{

    interface A {
        void onTouch();
    }

    public A setTouch() {
        return new A() {

            @Override
            public void onTouch() {

            }
        };
    }

    public static void main(String[] args) {
        Stu stu = new Stu();
        stu.setTouch();
    }

}

javac编译之后生成
这里写图片描述
可以看出总共生成了三个class文件。为接口A生成了一个class文件,为内部类生成了一个Stu$1.class文件

猜你喜欢

转载自blog.csdn.net/reuxfhc/article/details/81590997