Так как Java8 недавно был выпущен, и его новые лямбда-выражения выглядят действительно здорово, мне было интересно, означает ли это конец анонимных классов, к которым мы так привыкли.
Я немного разбираюсь в этом и нашел несколько интересных примеров о том, как выражения Lambda будут систематически заменять эти классы, например метод сортировки Collection, который использовался для получения анонимного экземпляра Comparator для выполнения сортировки:
Collections.sort(personList, new Comparator<Person>(){
public int compare(Person p1, Person p2){
return p1.firstName.compareTo(p2.firstName);
}
});
Теперь можно использовать Lambdas:
Collections.sort(personList, (Person p1, Person p2) -> p1.firstName.compareTo(p2.firstName));
И выглядит удивительно кратким. Поэтому мой вопрос заключается в том, есть ли какая-нибудь причина продолжать использовать эти классы в Java8 вместо Lambdas?
ИЗМЕНИТЬ
Тот же вопрос, но в противоположном направлении, каковы преимущества использования Lambdas вместо анонимных классов, поскольку Lambdas можно использовать только с интерфейсами с одним интерфейсом, является ли эта новая функция только ярлыком, который используется только в нескольких случаях или действительно ли это полезным?