首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Exception >

实例化时可以同时override吗?

2014-01-26 
高手解释下下面这段代码,自己感觉代码是在实例化的同时,直接对父类方法override了,但因为第一次看到这种代

高手解释下下面这段代码,自己感觉代码是在实例化的同时,直接对父类方法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();

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

        

热点排行