Optional<List<Long>> optionalList = getList(someInput);
如何从此列表中检索元素? 如何迭代这个列表?
答案 0 :(得分:3)
您可以打开列表,将其用作普通列表。
List<Long> list = optionalList.orElseGet(Collections::emptyList);
list.forEach(System.out::println); // process the list
// e.g. printing its elements
如果您只想要forEach(..)
而不需要打开列表。
optionalList.orElseGet(Collections::emptyList)
.forEach(System.out::println);
您可以检查是否存在
if (optionalList.isPresent()) {
List<Long> myList = optionalList.get();
// process list present
} else {
// process not present
}
或继续使用optional来访问其中一个元素
Optional<Long> longAt5 = optionalList.filter(list -> list.size() > 5)
.map(list -> list.get(5));
答案 1 :(得分:1)
检查是否存在值,然后执行一些逻辑:
optionalList.ifPresent(list -> {
...
});
至于处理清单,你可以这样做:
optionalList.orElseGet(() -> Collections.emptyList()).forEach(e -> {...});