由于 Java8最近刚刚发布,它全新的 lambda 表达式看起来非常酷,我想知道这是否意味着我们已经习惯了的 Anonymous 类的消亡。
我对此做了一些研究,发现了一些很酷的例子,说明 Lambda 表达式将如何系统地替换这些类,比如 Collection 的 sort 方法,该方法用于获取一个 Compaator 的 Anonymous 实例来执行排序:
Collections.sort(personList, new Comparator<Person>(){
public int compare(Person p1, Person p2){
return p1.firstName.compareTo(p2.firstName);
}
});
Now can be done using Lambdas:
Collections.sort(personList, (Person p1, Person p2) -> p1.firstName.compareTo(p2.firstName));
而且看起来惊人的简洁。所以我的问题是,有没有什么理由继续在 java8中而不是在 Lambdas 中使用这些类呢?
剪辑
同样的问题,但是在相反的方向上,使用 Lambdas 而不是 Anonymous 类有什么好处,因为 Lambdas 只能用于单个方法接口,这个新特性只是在少数情况下使用的一个快捷方式,还是它真的有用?