读书人

实例化时可以同时override吗?

发布时间: 2014-01-26 14:37:18 作者: rapoo

高手解释下下面这段代码,自己感觉代码是在实例化的同时,直接对父类方法override了,但因为第一次看到这种代码,不敢肯定,高手近来指点下,这样写可以吗?有什么好处?实例化时可以同时override吗?

private ThreadLocal matchers = new ThreadLocal() {
protected synchronized Object initialValue() {
return new Perl5Matcher();
}
};

------解决方法--------------------------------------------------------
无名内部类
你的理解也没什么问题
------解决方法--------------------------------------------------------
这叫做匿名内部类(Anonymous inner class),直接在初始化时定义类,相当于:

class T extends ThreadLocal() { .... }
private ThreadLocal matchers = new T();

如果内部类只初始化一次,用匿名内部类可以简化代码。

        

读书人网 >Java Exception

热点推荐