比较 Java Lambda 和匿名类
随着 Java8 的出现,lambda 表达式已成为代码编写领域的新来者,让许多人怀疑他们是否已经废除了熟悉的匿名类。本文探讨了这两种构造之间的差异,以确定每种构造何时最合适。
Lambda 表达式:简洁的替代方案
Lambda 提供了一种简洁的语法来实现单-方法接口。如示例所示,用于对列表进行排序的 lambda 表达式可以简洁地表示为:
Collections.sort(personList, (Person p1, Person p2) -> p1.firstName.compareTo(p2.firstName));
匿名类的优点
但是,匿名类仍然有其自身的优点在 Java8 中占有一席之地,因为它们提供了 lambda 不具备的功能。匿名类可以:
合适的应用
总之,lambda 非常适合以下情况:
匿名类在以下情况下仍然合适:
结论
虽然 lambda 为单一方法实现提供了一种简化的方法,但当需要超出 lambda 范围的更高级功能时,匿名类仍然在 Java 编程中发挥着至关重要的作用。了解每种构造的不同功能将使开发人员能够为特定编码任务选择最合适的方法。
以上是何时在 Java Lambda 和匿名类之间进行选择?的详细内容。更多信息请关注PHP中文网其他相关文章!