JAVA中空实现匿名内部类

69 阅读1分钟

在使用一些框架或者类的时候,发现这个类是不对外暴露的,只供内部使用,这个时候我们又需要它的功能该怎么办呢?

    比如下面这段代码:

public class text {
    //        测试方法
    public void testMethod() {
        System.out.println("testMethod");
    }
    //    空构造
    protected text() {
    }
}

构造方法是受保护的,根本创建不了对象

image.png 像这样运行会直接报错,反射有效率问题,创建子类有点麻烦

那么就可以直接创建一个空实现匿名内部类

public static void main(String[] args) {
    test test = new test(){};
    test.testMethod();
}

创建的对象后面加个大括号就可以创建出一个匿名的子类,这个匿名类没有实现方法,它的功能全靠调用父类的。所以它可以发挥和父类一样的作用,简单又省力,只需要加上{}就可以创建使用.