Cómo se debe transmitir el valor de la lista de Java (Varargs) en un método?

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 exclusionsque 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 Streamde exclusionsy luego usar noneMatch()para asegurarse de lo dado ATypeno está incluido en elArray

Supongo que te gusta

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