Sử dụng Lambda Expression trong Android Studio với Retrolambda

Lambda Expression xuất hiện từ phiên bản Java 8 được giới thiệu là tính năng hữu ích nhất của phiên bản Java 8, nó làm đơn giản hóa việc phát triển mã nguồn hơn rất nhiều.

Vấn đề là Android chưa hỗ trợ Java 8 (nên cũng không có Lambda Expression luôn). Tuy nhiên các nhà phát triển đã tạo ra Retrolambda, thư viện hỗ trợ cho Android Developer có thể sử dụng Lambda Expression cho quá trình viết mã nguồn ứng dụng Android.

Cách cài đặt thì vô cùng đơn giản bao gồm 4 bước:

Bước 1: Cài đặt JDK8 tại đây

Bước 2: Thêm các đoạn mã dưới đây vào file build.gradle của project

buildscript {
  repositories {
     mavenCentral()
  }

  dependencies {
     classpath 'me.tatarka:gradle-retrolambda:3.2.3'
  }
}

Bước 3: Thêm đoạn mã dưới vào file build.gradle của module app của bạn

apply plugin: 'com.android.application' //Default
apply plugin: 'me.tatarka.retrolambda'

Bước 4: Thêm đoạn mã dưới vào file build.gradle của module app để thông báo cho IDE biết sẽ dùng Java 8

android {
  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }
}

Bắt đầu làm việc với Lambda Expression

Từ giờ trở đi bạn có thể viết những dòng code ngắn hơn tương tự như sau: Trước đây khi viết listioner cho sự kiện click vào button chúng ta có thể dùng:

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            log("Clicked");
        }
    });

Và giờ đây với Lambda Expression bạn có thể viết gọn lại:

    button.setOnClickListener(v -> log("Clicked"));

HẾT