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 ...
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"));