Mar 29, 2014


Java 8 is released!
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(List users, 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.
Categories:

0 comments:

Post a Comment

Subscribe to RSS Feed Follow me on Twitter!