// 方法引用
Set<String> knownNames = new HashSet<>();
Predicate<String> isKnown = knownNames::contains;
// lambda表达式
Set<String> knownNames = new HashSet<>();
Predicate<String> isKnown = (s) -> knownNames.contains(s);
// 匿名内部类
Set<String> knownNames = new HashSet<>();
Predicate<String> isKnown = new Predicate<String>() {
@Override
public boolean test(String s) {
return knownNames.contains(s);
}
}
以上三种形式的效果是一样的