Functional Interface và biểu thức Lambda trong Java 8

10:54 29/08/2023

Trong java 8, lambda expression cùng với Functional interface là một bộ đôi được sử dụng rộng rãi về các tính năng ưu việt và tối giản code, giúp tăng tính đọc hiểu cho dự án. Hãy cùng tìm hiểu sâu hơn về lambda expression và functional interface trong bài viết dưới đây nhé!

Ngoài ra lambda expressio n cùng với Functional interface là một phần không thể xíu trong Stream api để triển khai các tính năng như sắp xếp, lọc, loop, map etc.

Functional interface

 Functional Interface là một interface chứa duy nhất một abstract method. Một functional interface có thể có nhiều default method nên các bạn đừng nhầm tưởng rằng functional interface lại có nhiều method thế kia nhé, nó chỉ có một abstract method duy nhất thôi!

Annotation @FunctionalInterface đặt ở đầu interface cho chúng ta dễ dàng nhận biết nó là một functional interface. Điều quan trọng là annotation @FunctionalInterface sẽ đảm bảo cho interface của chúng ta chỉ có duy nhất một abstract method. Nếu chúng ta khai báo nhiều hơn một abstract method trong interface được đánh dấu @FunctionalInterface thì chúng ta sẽ nhận được lỗi ‘Unexpected @FunctionalInterface annotation’.

Toán tử mũi tên (->)

Java 8 giới thiệu một toán tử mới là toán tử mũi tên ->. Toán tử này được dùng trong biểu thức Lambda với mục đích chia biểu thức Lambda thành 2 phần: tham số và nội dung thực thi

Ví dụ:

Các tính năng của lambda expression

Biểu thức lambda expression có thể dùng để triển khai một hàm ẩn danh (hàm không có tên, chỉ chứa tham số và mã code triển khai).

Cú pháp lambda expression

Biểu thức Lambda trong java gồm có 3 thành phần sau:

    • Argument-list: danh sách tham số, có thể không có, có một hoặc nhiều tham số.
    • Arrow-operator: toán tử mũi tiên được sử dụng để liên kết danh sách tham số và body của biểu thức.
  • Body: Thân hàm, có thể trả về giá trị hoặc không.

Ví dụ 1: Sử dụng lambda với Collection

Ví dụ 2: Sử dụng lambda với Functional interface không chứa tham số

Ví dụ 3: Sử dụng lambda với Functional interface chứa nhiều tham số

Bộ môn Ứng dụng Phần mềm
Trường Cao đẳng FPT Mạng cá cược bóng đá cơ sở Đà Nẵng

Cùng chuyên mục

Đăng Kí học Fpoly 2023