lambda表达式是Java 8中创建的新功能。它提供了一种简洁明了的方法来实现一种方法接口aka aka @FunctionalInterface
。您可能在使用可运行或比较器类时很熟悉。实现这些类,需要您创建一个新的类或匿名类。幸运的是,lambda存在于此,从而消除了Java语言的冗长。
说我们想对名称列表进行排序。我们可以使用Collections.sort()
方法并实现匿名类比较器。
List<String> names = Arrays.asList("Jerome", "Steve", "Cathy", "Lara");
Collections.sort(names, new Comparator<String>() {
@Override
public int compare(String a, String b) {
return b.compareTo(a);
}
});
我们可以使用lambda表达式缩短上述代码。
Collections.sort(names, (String a, String b) -> {
return b.compareTo(a);
});
哎呀,我们甚至可以使它变短。如果只是一种衬里方法,我们可以省略括号并返回关键字。
Collections.sort(names, (a, b) -> b.compareTo(a));
甜! lambda表达式不仅使我们的代码可读,还可以消除噪音,从而使我们更多地关注代码的行为部分。