如何在方法中传输 Java List (Varargs) 的值?

2023-11-21

我有以下方法:

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'

现在我想将其作为参数放入列表中:

public static List<A> getValuesExclusion(A... exclusions){
        return Arrays.stream(values())
                .filter(???)
                .collect(Collectors.toList());
}

我的问题是,如何针对第二种情况进行过滤?我想检索一个枚举列表,其中排除所有值“排除”作为输入。以下是 A 类的属性:

public enum A implements multilingualA{
    A("a"),
    B("b"),
    C("c"),
    D("d");
    ...
}

如果您想确保所有项目均未包含在exclusions你可以这样做:

public static List<A> getValuesExclusion(AType... exclusions){
        return Arrays.stream(values())
                .filter(e -> Arrays.stream(exclusions).noneMatch(c -> c == e))
                .collect(Collectors.toList());
}

这将创建一个Stream of exclusions然后使用noneMatch()以确保给定的AType不包含在Array

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在方法中传输 Java List (Varargs) 的值? 的相关文章

随机推荐