EMC:
Estoy seguro de que esto se responde en alguna parte, pero no tienen suficientes buenos términos de búsqueda para encontrarlo. Estoy utilizando el paquete de io.vavr.control.Try, y cuando intento utilizar el método getOrElseThrow sobre un elemento en una corriente de los resultados, el método es ambiguo con la clase io.vavr.Value. ¿Puedo especificar el método que quiero usar alguna manera, o es imposible?
MC emperador:
Tienes un número de opciones:
Añadir una conversión explícita al tipo deseado:
.map(rsp -> rsp.getOrElseThrow((Supplier<NotFoundException>) NotFoundException::new)) .map(rsp -> rsp.getOrElseThrow((Function<? super Throwable, NotFoundException>) NotFoundException::new))
Utilizar una expresión lambda en lugar de una referencia del método:
.map(rsp -> rsp.getOrElseThrow(() -> new NotFoundException())) .map(rsp -> rsp.getOrElseThrow(t -> new NotFoundException(t)))
Utilizar un tipo explícito del parámetro lambda exterior:
.map((Value<…> rsp) -> rsp.getOrElseThrow(NotFoundException::new)) .map((Try<…> rsp) -> rsp.getOrElseThrow(NotFoundException::new))