Puedo escribir de forma explícita una llamada al método ambiguo y usarlo?

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?

introducir descripción de la imagen aquí

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))
    

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=312594&siteId=1
Recomendado
Clasificación