Android - Lambda Expression
Bước 1:Cài đặt JDK
Để sử dụng trước tiên cần phải cài đặt JDK8 cho Java (Nếu đã cài đặt thì không cần)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Bước 2: Cấu hình trong build.gradle(app)
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Log.e("DO_WORK","1");
Log.e("DO_WORK","2");
});
@Override
public void onClick(View v) {
Log.e("DO_WORK","1");
}
});
Để sử dụng trước tiên cần phải cài đặt JDK8 cho Java (Nếu đã cài đặt thì không cần)
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Bước 2: Cấu hình trong build.gradle(app)
defaultConfig {
...
jackOptions {
enabled true
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
Bước 3: Coding (VD)
// bình thường
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("DO_WORK","1");
Log.e("DO_WORK","2");
}
});
// bình thường
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.e("DO_WORK","1");
Log.e("DO_WORK","2");
}
});
//lambda
button.setOnClickListener(v -> {Log.e("DO_WORK","1");
Log.e("DO_WORK","2");
});
//bình thường
button.setOnClickListener(new View.OnClickListener() {@Override
public void onClick(View v) {
Log.e("DO_WORK","1");
}
});
//lambda
button.setOnClickListener(v -> Log.e("DO_WORK","1"));
--> Android Studio sẽ gợi ý và chuyển về lambda Expression nếu có thể --> Alt+Enter --> Replace with lambda
Cấu trúc tổng quát: (params)->{ your functions }
- params:0 hoặc 1 hoặc nhiều, nếu 1 có thể bỏ dấu () bao ngoài nhưng nếu không có param phải có một cặp () trống. Các param phân biệt nhau bằng dấu ","
- your function: nếu chỉ có một dòng, có thể bỏ {}
Tham khảo các bài viết chi tiết hơn:
https://edwardthienhoang.wordpress.com/2014/06/08/java-8-tutorial-co-ban-ve-lambda-expression/
https://techmaster.vn/posts/26315/hoc-lap-trinh-java-online-tu-co-ban-den-nang-cao
...
Nhận xét
Đăng nhận xét