(Tutorial Android) Lambda Expression In Android Using Retrolambda


Lambda Expression adalah salah satu fitur penting yang ada di Java 8. Lambda Expression menciptakan fungsionalitas menjadi data semoga sanggup dipassing ke dalam suatu method sebagai parameter.

Lambda Expression mempunyai sintaks menyerupai berikut :
parameter → expression body 

Selengkapnya mengenai Lambda Expression di Java sanggup dibaca-baca di sini https://docs.oracle.com/javase/tutorial/java/javaOO/lambdaexpressions.html
*bilang aja TS susah jelasin :v

Retrolambda ialah library yang memungkinkan kita sanggup memakai lambda expression di Java 6, 7 dan Android.

Seperti apa penggunaan Retrolambda ini? Mari simak tutorial berikut.

Configuration

- Install JDK 8

- Tambahkan dependencies yang diharapkan 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 dikala 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 sanggup menciptakan 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 balasannya sebagai berikut :


Source code sanggup dilihat di https://github.com/andronut/Android-Retrolambda

Sekian tutorial singkat kali ini.
Semoga Bermanfat.

Comments

Popular posts from this blog

Tugas Komplemen Terakhir

Transmisi Data

Konsep Oop Encapsulation