在java中Anonymous类的用例和优点是什么?

时间:2016-07-15 03:44:51

标签: java java-8

我对Anonymous类的了解是,当你有任何类或接口时,只有部分代码需要实现或覆盖某些类或接口匿名,它会增加程序的可读性。但我有点困惑,假设将来你需要为不同的类实现相同的接口,所以在这种情况下你必须重构你以前的类,所以有没有其他的Anonymous类的优点?(它是否提高了性能?)

1 个答案:

答案 0 :(得分:3)

这是什么意思?

匿名类正是它的名称实现 - 它没有名称。它将类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

<强>规则:

匿名类必须始终扩展超类或实现接口,但它不能具有显式的extends或implements子句。

匿名类必须实现超类或接口中的所有抽象方法。

匿名类总是使用超类中的默认构造函数来创建实例。

相关问题