Karena Java8 baru-baru ini dirilis dan ekspresi lambda barunya terlihat sangat keren, saya bertanya-tanya apakah ini berarti matinya kelas Anonymous yang dulu biasa kita alami.
Saya telah meneliti sedikit tentang ini dan menemukan beberapa contoh keren tentang bagaimana ekspresi Lambda akan secara sistematis menggantikan kelas-kelas tersebut, seperti metode sortir Collection, yang digunakan untuk mendapatkan contoh Anonymous dari Pembanding untuk melakukan pengurutan:
Collections.sort(personList, new Comparator<Person>(){
public int compare(Person p1, Person p2){
return p1.firstName.compareTo(p2.firstName);
}
});
Sekarang dapat dilakukan menggunakan Lambdas:
Collections.sort(personList, (Person p1, Person p2) -> p1.firstName.compareTo(p2.firstName));
Dan terlihat sangat ringkas. Jadi pertanyaan saya adalah, apakah ada alasan untuk tetap menggunakan kelas-kelas tersebut di Java8 daripada Lambdas?
EDIT
Pertanyaan yang sama tetapi dalam arah yang berlawanan, apa manfaat menggunakan Lambdas daripada kelas Anonim, karena Lambdas hanya dapat digunakan dengan antarmuka metode tunggal, apakah fitur baru ini hanya pintasan yang hanya digunakan dalam beberapa kasus atau apakah itu benar-benar berguna?
Comparator.comparing(Person::getFirstName)
jika getFirstName()
akan menjadi metode yang kembali firstName
.