Functional Interface là các Interface có duy nhất một method trừu trượng, được đánh dấu bởi annotation @FunctionalInterface
Sử dụng Functional Interface thông qua Lambda Expressions
Dạng 1
Dạng 2: dành cho block code chỉ có 1 dòng lệnh
Tiếp theo là một số Functional Interfaces có sẵn trong Java 8 thường được sử dụng
Supplier
Suplier chứa method trừu tượng không tham số, và return về một đối tượng
Ví dụ: sử dụng functional interface Supplier
Consumer
Consumer chứa method trừu tượng có một tham số đầu vào và không return (void method).
Ví dụ: print một List trong java
Predicate
Predicate chứa method trừu tượng có một tham số đầu vào, và return boolean (true/false)
Ví du: lọc các số lẻ trong một list Integer
Function
Function chứa method trừu tượng có một tham số đầu vào và return một tham số khác
Ví dụ: upper case danh sách các String
Comparator
Trước Java 8, Comparator là một Interface được sử dụng nhiều để so sánh 2 tham số.
Từ Java 8, Functional interface Comparator chứa method trừu tượng có 2 tham số (a, b) và return kiểu int với ý nghĩa