Tìm hiểu về Functional Interface Consumer trong Java

Java 8 giới thiệu một package mới chứa các Functional Interface tên là java.util.function. Trong package này, chúng ta có nhiều interface như Consumer, Supplier, Predicate,… Trong bài viết này chúng ta sẽ tìm hiểu về Functional Interface Consumer các bạn nhé!
Nội dung của Interface này như sau:

Vì Consumer là một Functional Interface nên nó chỉ định nghĩa một phương thức abstract là accept(). Ngoài ra, như các bạn thấy, nó còn định nghĩa thêm một phương thức default andThen().

Phương thức accept() được định nghĩa với một tham số generic và không trả về gì cả. Và chúng ta sẽ sử dụng tham số này để thao tác, tính toán này nọ.

Ví dụ như chúng ta thường sử dụng interface Consumer trong phương thức forEach() của các đối tượng Collection như List, Set, …

Phương thức forEach() sẽ truyền giá trị của từng phần tử trong list s vào tham số của phương thức accept() của interface Consumer và ở đây mình đang sử dụng System.out.println() để in giá trị của phần tử này ra console.

Kết quả:

Tìm hiểu về Functional Interface Consumer trong Java

Phương thức andThen() mang ý nghĩa chúng ta có nhiều thao tác cần thực hiện, và sử dụng phương thức này giúp chúng ta thực hiện được nhiều thao tác cùng một lúc.

Ví dụ như:

Trong ví dụ trên, chúng ta sẽ thực hiện thao tác 1 tới thao tác 2 với giá trị được truyền vào là “Hello”.

Kết quả:

Tìm hiểu về Functional Interface Consumer trong Java

Trong package java.util.function, chúng ta còn có một số biến thể của Functional Interface Consumer như:

  • IntConsumer: với tham số trong phương thức accept() kiểu Integer.
  • DoubleConsumer: với tham số trong phương thức accept() kiểu Double.
  • LongComsumer: với tham số trong phương thức accept() kiểu Long.

BiConsumer: phương thức accept() của interface này chứa 2 tham số với kiểu giá trị khác nhau nhưng chức năng vẫn tương tự như interface Consumer các bạn nhé! Ví dụ:

Kết quả:

Tìm hiểu về Functional Interface Consumer trong Java

5/5 - (1 bình chọn)

2 thoughts on “Tìm hiểu về Functional Interface Consumer trong Java

  1. Ví dụ như chúng ta thường sử dụng interface Consumer trong phương thức forEach() của các đối tượng Collection như List, Set, …

    Mã là
    public static void main(String[] args) throws IOException {
    List s = Arrays.asList(“Khanh”, “Quan”);
    s.stream().forEach(System.out::println);
    }
    =>Consumer mà anh nói mã này nằm ở đâu,anh có thể giải thích kỹ hơn chỗ này hộ em được khôn anh?

Add Comment