В Java 8 мы можем использовать .map (Объект::toString)
для преобразования Необязательной <Строки>
в Строку
.
String result = list.stream() .filter(x -> x.length() == 1) .findFirst() // returns Optional .map(Object::toString) .orElse("");
Образцы
Стандартный Необязательный
способ получения значения.
package com.mkyong; import java.util.Arrays; import java.util.List; import java.util.Optional; public class Java8Example1 { public static void main(String[] args) { Listlist = Arrays.asList("a", "b", "c", "d", "e"); Optional result = list.stream() .filter(x -> x.length() == 1) .findFirst(); if (result.isPresent()) { System.out.println(result.get()); // a } } }
Выход
a
Попробуйте сопоставить (объект::toString)
package com.mkyong; import java.util.Arrays; import java.util.List; public class Java8Example2 { public static void main(String[] args) { Listlist = Arrays.asList("a", "b", "c", "d", "e"); String s = list.stream().filter(x -> x.length() == 1) .findFirst() .map(Object::toString) .orElse(null); System.out.println(s); // a } }
Выход
a
Рекомендации
- Java 8 Поток findFirst() и найти любой()
- Необязательный JavaDoc
Оригинал: “https://mkyong.com/java8/java-8-convert-optionalstring-to-string/”