Let’s play it!
Salah satu fitur baru pada Java 8, Lambda Expression! Secara garis besar Lambda Expression itu
digunakan untuk membuat fungsionalitas menjadi data yang bisa di passing ke
dalam suatu method sebagai parameter. Menggantikan anonymous class yang biasa
kita gunakan.
Kita ambil contoh mencetak daftar user yang berumur dibawah
22 tahun.
1.
Lambda Expression merupakan kode fungsionalitas, jadi
kita buat interface yang mendefinisikan suatu fungsi.
interface Tester { boolean test(T t); }
Interface di atas hanya untuk
mendefinisikan fungsionalitas.
2.
Buat kelas dengan nama User
class User { private String firstName; private String lastName; private int age; public User() { } public User(String firstName, String lastName, int age) { setFirstName(firstName); setLastName(lastName); setAge(age); } public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public void print() { System.out.println(firstName + " " + lastName + " : " + age); } }
Kelas diatas merupakan POJO yang
memiliki field firstname, lastName, Age, dan fungsi untuk mencetak User.
3.
Buat method untuk mencetak user
private static void printUnderTwentyTwo(Listusers, Tester tester) { for(User user : users) { if(tester.test(user)) { user.print(); } } }
*perhatikan: Tester.test(user) merupakan
fungsi yang didefinisikan dalam sebuah Interface, dengan kata lain tidak
memiliki implementasi. Pada Java versi sebelumnya, biasa digunakan anomymous
class.
4.
Memanggil method menggunakan Lambda Expression
printUnderTwentyTwo(listUser, p -> p.getAge() < 22);
*perhatikan:
p -> p.getAge() < 22)
Inilah yang dinamakan Lambda Expression.
Maksud dari kode di atas adalah fungsionalitas untuk mengecek apakah umur user
lebih kecil dari 22 dimasukan ke dalam variable p. Fungsionalitas tersebut di
passing ke dalam method sebagai parameter tester.
Demikian
penjelasan singkat tentang Lambda Expression yang ada pada Java 8.