Saat berburu melalui beberapa kode saya menemukan operator panah, apa fungsinya? Saya pikir Java tidak memiliki operator panah.
return (Collection<Car>) CollectionUtils.select(listOfCars, (arg0) -> {
return Car.SEDAN == ((Car)arg0).getStyle();
});
Detail : Java 6, Koleksi Apache Commons, IntelliJ 12
Pembaruan / Jawaban: Ternyata IntelliJ 12 mendukung Java 8, yang mendukung lambdas, dan "melipat" Predikat dan menampilkannya sebagai lambdas. Di bawah ini adalah kode "un-folded".
return (Collection<Car>) CollectionUtils.select(listOfCars, new Predicate() {
public boolean evaluate(Object arg0) {
return Car.SEDAN == ((Car)arg0).getStyle();
}
});
java
intellij-idea
apache-commons
java-8
apache-commons-collection
Mike Rylander
sumber
sumber
Jawaban:
Itu bagian dari sintaks ekspresi lambda baru, yang akan diperkenalkan di Java 8. Ada beberapa tutorial online untuk memahami hal itu, ini tautannya . Pada dasarnya,
->
memisahkan parameter (sisi kiri) dari implementasi (sisi kanan).Sintaks umum untuk menggunakan ekspresi lambda adalah
(Parameter) -> {Tubuh} di mana '->' memisahkan parameter dan tubuh ekspresi lambda.
Parameter terlampir dalam tanda kurung yang merupakan cara yang sama seperti untuk metode dan tubuh ekspresi lambda adalah blok kode yang tertutup dalam kurung kurawal.
sumber
Yang ini berguna juga ketika Anda ingin mengimplementasikan antarmuka fungsional
setara dengan
sumber
Saya percaya, panah ini ada karena IDE Anda. IntelliJ IDEA melakukan hal semacam itu dengan beberapa kode. Ini disebut kode lipat. Anda dapat mengklik tanda panah untuk meluaskannya.
sumber
Itu ungkapan lambda.
Ini berarti bahwa, dari listOfCars, arg0 adalah salah satu item dari daftar itu. Dengan item yang akan dia lakukan, maka ->, apa pun yang ada di dalam kurung.
Dalam contoh ini, dia akan mengembalikan daftar mobil yang sesuai dengan kondisinya
sumber
Operator baru untuk ekspresi lambda ditambahkan di java 8
Ekspresi Lambda adalah cara singkat menulis metode.
Secara tidak langsung digunakan untuk mengimplementasikan antarmuka fungsional
Sintaks Utama: (parameter) -> {pernyataan; }
Ada beberapa aturan dasar untuk penulisan kalimat lambda yang efektif yang harus Anda ketahui.
sumber