Optional<List<Long>> optionalList = getList(someInput);
Run Code Online (Sandbox Code Playgroud)
如何从此列表中检索元素?如何迭代这个列表?
您可以打开列表并像普通列表一样使用它。
List<Long> list = optionalList.orElseGet(Collections::emptyList);
list.forEach(System.out::println); // process the list
// e.g. printing its elements
Run Code Online (Sandbox Code Playgroud)
如果您只想要一个forEach(..)并且不需要解开列表。
optionalList.orElseGet(Collections::emptyList)
.forEach(System.out::println);
Run Code Online (Sandbox Code Playgroud)
您可以检查是否存在
if (optionalList.isPresent()) {
List<Long> myList = optionalList.get();
// process list present
} else {
// process not present
}
Run Code Online (Sandbox Code Playgroud)
或者继续使用 optional 来访问其元素之一
Optional<Long> longAt5 = optionalList.filter(list -> list.size() > 5)
.map(list -> list.get(5));
Run Code Online (Sandbox Code Playgroud)