Lambda Expression adalah salah satu fitur penting yang ada di Java 8. Lambda Expression membuat fungsionalitas menjadi data agar dapat dipassing ke dalam suatu method sebagai parameter.
Lambda Expression memiliki sintaks seperti berikut :
parameter → expression body
Selengkapnya mengenai Lambda Expression di Java bisa dibaca-baca di sini https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
*bilang aja TS susah jelasin :v
Retrolambda adalah library yang memungkinkan kita dapat menggunakan lambda expression di Java 6, 7 dan Android.
Seperti apa penggunaan Retrolambda ini? Mari simak tutorial berikut.
Configuration
- Install JDK 8
- Tambahkan dependencies yang diperlukan di gradle.
Top-level
buildscript { repositories { jcenter() mavenCentral() } dependencies { .... classpath 'me.tatarka:gradle-retrolambda:3.3.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } }Module-level
apply plugin: 'me.tatarka.retrolambda' android { ... compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } repositories { mavenCentral() } retrolambda { jvmArgs '-noverify' }
Contoh penggunaan Retrolambda misalkan pada event listener ketika button di click.
- Tanpa Lambda Expression
button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { } });- Dengan Lambda Expression
button.setOnClickListener(view -> { textView.setText(getHello().hello()); });Bisa kita lihat perbandingan kedua implementasi di atas bahwa dengan Lambda Expression menjadi lebih singkat.
Selain itu kita juga bisa membuat sebuah interface yang mendefinisikan suatu fungsi. Misalnya buat fungsi untuk mencetak “Hello”.
public interface HelloFunction { String hello(); }Memanggil method dari interface HelloFunction dengan Lambda Expression.
public HelloFunction getHello() { return () -> getString(R.string.hello); }
Selanjutnya implementasikan fungsi hello() yang sudah kita buat di MainActivity.
package com.wimso.androidretrolambda; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView textView = (TextView) findViewById(R.id.textView); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(view -> { textView.setText(getHello().hello()); }); } public HelloFunction getHello() { return () -> getString(R.string.hello); } }
Build dan jalankan maka hasilnya sebagai berikut :
Source code dapat dilihat di https://github.com/wimsonevel/Android-Retrolambda
Sekian tutorial singkat kali ini.
Semoga Bermanfat.
0 Komentar
Penulisan markup di komentar