Jack :
Tengo el siguiente método:
public static List<A> getValuesExclusion(A exclusion) {
return Arrays.stream(values())
.filter(item -> item != exclusion)
.collect(Collectors.toList());
}
//this function returns enum list of A types that has no A type'exclusion'
Ahora quiero convertirlo en una lista como argumento:
public static List<A> getValuesExclusion(A... exclusions){
return Arrays.stream(values())
.filter(???)
.collect(Collectors.toList());
}
Mi pregunta es, ¿cómo puedo hacer el filtro para el segundo caso? Me gustaría recuperar una lista de enumeración que excluye a todos los valores "exclusiones" como entrada. Estos son los atributos de la clase A:
public enum A implements multilingualA{
A("a"),
B("b"),
C("c"),
D("d");
...
}
GBlodgett:
Si desea asegurarse de que todos los artículos no están incluidos en el exclusions
que podría hacer:
public static List<A> getValuesExclusion(AType... exclusions){
return Arrays.stream(values())
.filter(e -> Arrays.stream(exclusions).noneMatch(c -> c == e))
.collect(Collectors.toList());
}
Que creará una Stream
de exclusions
y luego usar noneMatch()
para asegurarse de lo dado AType
no está incluido en elArray