1. Forma correcta de usar Opcional
Considere el siguiente ejemplo:
List<String> list = new ArrayList<String>(); list.add("java"); list.add("php"); list.add("python"); list.add("perl"); list.add("c"); list.add("lisp"); list.add("c#"); Stream<String> wordStream = list.stream(); Stream<Integer> lengthStream = wordStream.map(s -> s.length()); Optional<Integer> sum = lengthStream.reduce((x, y) -> x + y); System.out.println(sum.get()); |
Esto no es correcto, ya que no hay verificación nula.
En lugar de utilizar el método get (), haga lo siguiente:
Optional<Integer> sum = lengthStream.reduce((x, y) -> x + y); sum.ifPresent(System.out::println); |
Si se requiere un valor predeterminado para el objeto opcional, use sum.orElse(0)
, o invocar otra función para obtener el valor predeterminado
sum.orElseGet(getValueMethod()); |
2. Cree valores opcionales
También podemos escribir métodos que devuelvan objetos opcionales. Para crear objetos opcionales, podemos usar Optional.of () u Optional.empty ().
public static Optional<Integer> sum(int[] arr){ return arr==null ? Optional.empty() : Optional.of(...computer sum...); } |