您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页java匿名内部类:java new一个新的类后面接{}有什么用

java匿名内部类:java new一个新的类后面接{}有什么用

来源:二三娱乐

问:放
像下面这段代码,ThreadLocal在初始化的时候后面接了一个方法,我在自己的代码中也试了一下,可以再大括号中定义变量定义方法,但是外部是不能调用的,我想知道这样写除了初始化还有什么用途和意义呢?

private static ThreadLocal<Integer> seqNum = new ThreadLocal<Integer>(){
public Integer initialValue(){
return 0;
}
};

答:1:这个叫匿名内部类
2:通过这种写法创建了一个ThreadLocal没有名字的子类。这个子类中覆盖了ThreadLocal的原有的initialValue方法,同时也创建了这个子类的一个实例。
它的作用跟
class OutterClass {

private static class MyThreadLocal extends ThreadLocal<Integer> {  
    public Integer initialValue(){      
        return 0;      
    }     
}  

private static MyThreadLocal seqNum = new MyThreadLocal();  

}

等价,好处是你不用专门为这个子类(MyThreadLocal)想一个名字,代码量也少一点

3: 匿名内部类不能被引用,因为这个类的名字都没有,怎么引用呢?!

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务