Predicate的测试方法实现

时间:2015-08-17 14:31:27

标签: lambda java-8 predicate

在Java SE 8 Programmer I Study指南中,他们有一个方法:

public class PredicateSearch {
    public static void main( String[] args ) {
        List<Animal> animals = new ArrayList<>();
        animals.add( new Animal("fish", false, true ));

        print( animals, a -> a.canSwim() );
    }

    private static void print( List<Animal> animals, Predicate<Animal> checker ) {
        for( Animal animal : animals ) {
            if ( checker.test( animal ))
                System.out.print( animal + " " );
        }
    }
}

有人说谓词的要点是

public interface Predicate<T> { boolean test(T t);
}

我想知道这个test方法何时以及如何实现..我仍然对lambda和谓词很困惑

1 个答案:

答案 0 :(得分:0)

你的print语句将与以前的java版本一样

print( animals, new Predicate<Animal>(){

        @Override
        public boolean test(Animal t) {
            return t.canSwim();
        }

    } );