Java 9 Optional Improvements
Java
215
java9
12
optional
1
Male avatar

loveprogramming viết ngày 19/05/2021

https://grokonez.com/java/java-9/java-9-optional-improvements

Java 9 Optional Improvements

Java 9 Optional comes with some small useful improvements. In this tutorial, we're gonna look at new added methods: stream(), ifPresentOrElse() and or().

I. New Optional API

1. stream()

With Java 8, this is a way for getting a List of Values from a Stream of Optionals:

List<String> strings = streamOptional()
                .map(Optional::get)
                .collect(Collectors.toList());

But, if streamOptional() returns a Stream that contains an empty Optional instance. It will throw a java.util.NoSuchElementException.
To handle this case, we can add filter() method:

// streamOptional(): [(Optional.empty(), Optional.of("one"), Optional.of("two"), Optional.of("three")]

List<String> strings = streamOptional()
                .filter(Optional::isPresent)
                .map(Optional::get)
                .collect(Collectors.toList());
                
// Result: strings[one, two, three]

Java 9 provides new Optional::stream to work on Optional objects lazily, it returns a stream of either zero or one/more elements. It also checks empty element automatically and removes it.

// streamOptional(): [(Optional.empty(), Optional.of("one"), Optional.of("two"), Optional.of("three")]

List<String> newStrings = streamOptional()
                .flatMap(Optional::stream)
                .collect(Collectors.toList());
                
// Result: newStrings[one, two, three]

2. ifPresentOrElse()

Java 8 Optional provides ifPresent() method to perform the given action if a value is present, otherwise do nothing.

More at:

https://grokonez.com/java/java-9/java-9-optional-improvements

Java 9 Optional Improvements

Bình luận


White
{{ comment.user.name }}
Bỏ hay Hay
{{comment.like_count}}
Male avatar
{{ comment_error }}
Hủy
   

Hiển thị thử

Chỉnh sửa

Male avatar

loveprogramming

545 bài viết.
97 người follow
Kipalog
{{userFollowed ? 'Following' : 'Follow'}}
Cùng một tác giả
Male avatar
1 0
Tutorial Link: (Link) (Ảnh) Django is a Pythonbased free and opensource web framework that follows the modeltemplateview architectural pattern. A...
loveprogramming viết 9 tháng trước
1 0
Male avatar
1 0
https://loizenai.com/angular11nodejspostgresqlcrudexample/ Angular 11 Node.js PostgreSQL Crud Example (Ảnh) Tutorial: “Angular 11 Node.js Postg...
loveprogramming viết 7 tháng trước
1 0
Male avatar
1 0
Angular Spring Boot jwt Authentication Example Github https://loizenai.com/angularspringbootjwt/ (Ảnh) Tutorial: ” Angular Spring Boot jwt Authe...
loveprogramming viết 7 tháng trước
1 0
Bài viết liên quan
White
2 0
Trong bài viết này, một số hình ảnh hoặc nọi dung có thể bị thiếu do quá trình chế bản. Vui lòng xem nội dung ở blog gốc sau: (Link) (Link), chúng...
programmerit viết gần 6 năm trước
2 0
Male avatar
0 0
https://grokonez.com/java/java9/java9flowapireactivestreams Java 9 Flow API – Reactive Streams Java 9 introduces Reactive Streams under java.util...
loveprogramming viết 3 tháng trước
0 0
{{like_count}}

kipalog

{{ comment_count }}

bình luận

{{liked ? "Đã kipalog" : "Kipalog"}}


Male avatar
{{userFollowed ? 'Following' : 'Follow'}}
545 bài viết.
97 người follow

 Đầu mục bài viết

Vẫn còn nữa! x

Kipalog vẫn còn rất nhiều bài viết hay và chủ đề thú vị chờ bạn khám phá!