过滤时获取谓词的反转?

Aks*_*ert 0 java collections guava

我知道谓词的基础知识,并理解下面从这个问题复制的代码

Predicate<Integer> isEven = new Predicate<Integer>() {
    @Override public boolean apply(Integer number) {
        return (number % 2) == 0;
    }               
};
Iterable<Integer> evenNumbers = Iterables.filter(numbers, isEven);
Run Code Online (Sandbox Code Playgroud)

但是有可能为与谓词不匹配的项获得可迭代(不更改谓词代码)吗?

Sot*_*lis 8

使用Predicates#not(Predicate).

Iterable<Integer> oddNumbers = Iterables.filter(numbers, Predicates.not(isEven));
Run Code Online (Sandbox Code Playgroud)