在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和谓词很困惑
答案 0 :(得分:0)
你的print语句将与以前的java版本一样
print( animals, new Predicate<Animal>(){
@Override
public boolean test(Animal t) {
return t.canSwim();
}
} );