¿Cómo crear un filtro múltiple basado en condiciones y devolver un valor no booleano?

Intentando aplicar múltiples filtros según la condición, el pseudocódigo es:

if TypeA exception 
    then throw TypeA Exception
if TypeB 
    then throw TypeB Exception
else TypeC Exception.

No sé cómo hacerlo usando filtros basados ​​en la condición:

List<InvalidArgumentException> invalidEx = e.getInvalidException();
return invalidEx.stream()
       .filter (ic -> {
if(ic.getInvalidExcepType().equals(ExceptionType.TypeA)) {
 return (RuntimeException) new TypeAException(e);
} else if (ic.getInvalidExcepType().equals(ExceptionType.TypeB))
 return (RuntimeException) new TypeBException(e);
}).orElse (new TypeCException(e));
Respuesta 1

En lugar de usar filter, que solo devuelve todos los elementos Streamque coinciden con el predicado dado, debe usar map:

return invalidEx.stream()
   .map(ic -> {
          if(ic.getInvalidExcepType().equals(ExceptionType.TypeA)) {
              return (RuntimeException) new TypeAException(e);
          } else if (ic.getInvalidExcepType().equals(ExceptionType.TypeB)) {
              return (RuntimeException) new TypeBException(e);
          } else {
              return new TypeCException(e);
          }
    }).collect(Collectors.toList());

(O alguna otra operación de terminal)

Respuesta: 2

Estoy intentando acceder a la página / manager de la instancia de Tomcat instalada por NetBeans 7.1.2. Cuando hago clic derecho en el nodo del árbol correspondiente para propiedades, obtengo esto: lo que parece sugerir que podría ...

Estoy tratando de eliminar objetos que están fuera del JPanel. Sin embargo, cuando hago eso me sale este error y mi programa se bloquea. Mi profesor me dijo que es porque dos hilos están accediendo a ...

Estoy cargando una imagen de botón que tiene formato png. Pero el formato es demasiado grande. ¿Cómo puedo cambiar el tamaño del ancho y alto de ese rango definido, pero evito usar el tamaño de la imagen? Antes: público ...

Tengo problemas para comprender el comportamiento de este código. a se define como una A, c se define como una C. Luego, al final de la clase pública, a = c. Cuando un llama al método display (), alcanza ...