Mengenal Fitur Lambda Expression pada Java 8

    Seperti yang diketahui bahwa anonymous class memungkinkan kita membuat sebuah class tanpa perlu mendeklarasikan nama kelas tersebut. Namun, apa yang terjadi ketika membuat anonymous class yang simpel, semisal interface yang hanya mempunyai satu metod/fungsi saja, maka anonymous class yang dibuat akan terasa sulit dan tidak jelas. Semisalnya apa yang harus dilakukan ketika sebuah button diklik.
Lambda expression
akan memudahkan dan menyempurnakan penggunaan anonymous class yang kita buat menjadi lebih mudah dan ringkas. Lambda expression mulai ada sejak versi Java 8.

Syntax dan Contoh Lambda Expression

Syntax lambda expression kurang lebih seperti berikut:

(argumen1, ..., argumen ke-n) -> {body fungsi}

dengan :

  • (argumen1, ..., argumen ke-n) berisi parameter / argumen yang akan dikirim ke dalam fungsi dan bersifar opsional.
  • -> operator lambda, simbol yang menyatakan bahwa baris code adalah lambda expression.
  • {} penanda scope fungsi / body function  lambda expression.

Contoh


    Pada contoh tersebut, interface Reference memiliki method  getGravitionalEnergyValue yang didefinisikan pada object ref. Tentunya ini lebih mudah dibandingkan dengan cara yang dilakukan dengan anonymous class biasa seperti pada method doCalculateForce. Pada fungsi utama (main) interface Reference lebih straight to the point dalam implementasi.

Hasil


Contoh lain

Kita juga bisa melempar interface tersebut ke dalam sebuah metod / fungsi, seperti berikut:


    Pada contoh di atas interface di lempar ke dalam fungsi setActionClick. Terlihat 2 cara dalam pendefinisiannya yang pertama menggunakan teknik anonymous class biasa, terlihat pada instansiasi obyek reference. Selanjutnya menggunakan teknik lambda expression yang bisa dilihat pada lambda.setClickAction()

Hasil



Akses Variabel Lambda Expression

    Akses variabel pada lambda expression sama seperti pada akses variabel fungsi anonymous. lambda bisa mengakses variabel global yang berada di tempat lambda tersebut digunakan. Terlihat pada contoh di bawah lambda expression maupun anonymous class bisa mengakses variabel author.
 

Hasil


 

Sumber

Posting Komentar untuk "Mengenal Fitur Lambda Expression pada Java 8"