guava_ch

Using the Predicates class

Predicates类包含许多处理Predicates实例有用的方法。Predicates类提供了许多有用的方法,处理Boolean条件,使用andor串联Predicate实例,提供not来取反给定的Predicate所得出的值。 同样提供了Predicates.compose方法,但是,这个方法使用Predicate实例和Function对象,返回对Function输出的计算结果。

首先,让我们先假定有如下两个Predicates类实例定义,和之前的PopulationPredicate定义:

public class TemperateClimatePredicate implements Predicate<City> {
    @Override
    public boolean apply(City input) {
        return input.getClimate().equals(Climate.TEMPERATE);
    }
}

public class LowRainfallPredicate implements Predicate<City> {
    @Override
    public boolean apply(City input) {
        return input.getAverageRainfall() < 45.7;
    }
}

再次说明,并不必须的,我们一般使用匿名类定义Predicate实例。