我对匿名类的了解是,当您拥有任何类或接口,并且只有部分代码需要匿名实现或覆盖某个类或接口时,它会增加程序的可读性。但是我有点困惑,假设将来您需要为不同的类实现相同的接口,因此在这种情况下,您必须重构以前的类,那么匿名类还有其他优势吗?(它是否提高了性能?)
这是什么意思?
匿名类正如它的名字所暗示的那样——它没有名字。它在一个步骤中结合了类declaration和类的创建instance。由于匿名类没有名称,因此不能从定义匿名类的类的外部实例化对象。事实上,匿名对象只能在定义它的同一范围内实例化。
为什么要使用匿名类?
匿名类可以节省时间并减少 . java定义应用程序所需的文件。您可能有一个仅在特定情况下使用的类,例如Comparator. 这允许“即时”创建对象。
你可能会发现你更喜欢使用匿名类;许多人用他们广泛实施listeners的GUIs。
匿名类定义的语法
此示例演示传递给 Collections 类中的 sort() 方法的比较器的匿名类定义。假设 aList 是要排序的有效数据列表。
Collections.sort (aList,
new Comparator () { // implements the IF
public int compare (ObjectType o1, ObjectType o2 ) throws ..{
//.... implementation for compare()
} // end of compare()
} // end of Comparator implementation
); // closed paren for sort() and end of statement semicolon
Run Code Online (Sandbox Code Playgroud)
规则:
匿名类必须始终扩展超类或实现接口,但它不能具有显式的 extends 或 implements 子句。
匿名类必须实现超类或接口中的所有抽象方法。
匿名类总是使用超类的默认构造函数来创建实例。
| 归档时间: |
|
| 查看次数: |
7412 次 |
| 最近记录: |