Phương thức flatMap() của đối tượng Optional trong Java

Như các bạn đã biết, đối tượng Optional là một đối tượng Generic, kiểu dữ liệu của nó có thể là bất cứ đối tượng nào, và do đó, chúng ta có thể gặp trường hợp kiểu dữ liệu của nó cũng là một đối tượng Optional luôn, kiểu như: Optional<Optional<String>>. Để giải quyết vấn đề này, Java giới thiệu với chúng ta phương thức flatMap() trong đối tượng Optional để kiểu dữ liệu của Optional đơn giản hơn: ví dụ như Optional<String>.

Ví dụ, mình có phương thức sau:

Để hạn chế lỗi NPE, mình sẽ viết lại phương thức trên với đối tượng Optional:

Bây giờ, nếu các bạn sử dụng phương thức trên với phương thức map() trong đối tượng Optional như sau:

thì kiểu giá trị trả về của phương thức map() sẽ là:

Phương thức flatMap() của đối tượng Optional trong Java

Như các bạn thấy, ở đây kết quả trả về là một đối tượng Optional của đối tượng Optional.

Nếu bây giờ, mình sử dụng phương thức flatMap() thay thế cho phương thức map():

thì kiểu giá trị trả về sẽ đơn giản hơn rất nhiều:

Phương thức flatMap() của đối tượng Optional trong Java

Add Comment