在看代码的过程中感觉对匿名类的语义规范了解不够,在一个[技术问答区]查找后记录于此
匿名类
匿名类能让你书写出更简洁的代码。它使你得以同时声明并创建一个类定义的对像。匿名类除了没有名字外,与局部类无区别。如果这种局部类仅需用一次,就可以采用匿名类的形式。匿名类 anonymous classes 都是子类。虽然是匿名类,但仍然需要一个具体类型来保存引用以及创建对象,这个具体类型就是它的父类或接口。匿名类的表示必须具备以下几点:
- 操作符 new
- 要实现的接口,或者要继承的类,的名称。这里的情况是,要继承类 ArrayList。
- 一对圆括号,囊括构造方法,即创建一个普通类的实体的表达式的参数。当然,如果是实现一个接口的的情况,由于接口没有构造方法,故使用一对空园括号。这里的情况是,将调用 ArrayList的无参构造方法,以创建一个初始容量为 10 的空列表。。
- 用一对花括号括起的声明(定义)类的代码块体。具体讲,在这个花括号内,只允许声明 方法、属性和内嵌的花括号囊括的代码块。这里的情况是,为原有的超类 ArratList的定义,添加了一个用一对内层的话括号括起来的代码块。一旦要创建实体 list,这个代码块就会被执行。