4.1 匿名类特性与约束
匿名类是一种特殊的局部类。局部类的特性与约束都适用与它。
4.2 新增语法
4.2.1 继承自某个基类的匿名类
new class-name ( [ argument-list ] ) { class-body } |
创建匿名类实例时,“argument-list”将被传入其基类(即class-name)对应的构造函数。
4.2.2 实现某个接口的匿名类
new interface-name () { class-body } |
4.3 什么时候使用匿名类
该类定义代码段很短
只需要创建该类的一个实例
类的定义代码与类的使用代码紧邻
使用匿名不影响代码的易读性
譬如,如下实现类似与c的callback功能的代码就是匿名类的典型应用:
File f = new File("/src"); // The directory to list
// Now call the list() method with a single FilenameFilter argument
// Define and instantiate an anonymous implementation of FilenameFilter
// as part of the method invocation expression.
String[] filelist = f.list(new FilenameFilter() {
public boolean accept(File f, String s) { return s.endsWith(".java"); }
}); // Don't forget the parenthesis and semicolon that end the method call!
查看本文来源