Java Lambda – 7 : java.util.function.Function

Package java.util.function memberikan beberapa interface standar untuk lambda expression seperti Function, Predicate, BiFunction, dan sebagainya. Catatan kecil ini memberikan contoh-contoh penggunaan interface Function pada java.util.function.

Interface Function dideklarasikan Function<T,R> . Interface ini merupakan representasi fungsi yang menerima tipe parameter T dan return type tipe R. Method yang ada di dalamnya diantaranya adalah R apply(T t) . Berikut adalah contoh penggunaannya untuk melakukan kuadrat sebuah bilangan :

Function<Integer,Integer> kuadrat = bil -> bil * bil;
System.out.println(kuadrat.apply(10));

Satu method yang menarik dari interface ini adalah adanya method chaining, yang memungkinkan sebuah method untuk memanggil method lain dari sebuah kelas atau interface yang sama. Method yang bisa bekerja dengan chaining adalah method andThen(). Sebagai contoh, pemrosesan kuadrat di atas bisa dilanjutkan dengan pemrosesan yang lain, misalnya penambahan dengan angka 10 sebagai berikut :

Function<Integer,Integer> kuadrat = bil -> bil * bil;
System.out.println( kuadrat.apply(10) );
Function<Integer,Integer> tambah10 = bil -> bil + 10;
System.out.println(kuadrat.andThen(tambah10).apply(5));

Baris terakhir dari kode di atas akan melakukan kuadrat, kemudian menambahkan bilangan 10, dan menerapkannya ke bilangan 5.

–end of note–

Leave a Reply

Your email address will not be published. Required fields are marked *