java.util.function.Predicate是一个功能接口,可用作lambda表达式的赋值目标。 Predicate接口表示采用单个输入并返回布尔值的操作。
示例#1
以下示例显示如何使用lambda使用Predicate接口的test()方法。
文件:PredicateExample1.java -
package com.yiibai.tutorial.lambda;
import java.util.function.Predicate;
/**
* @author yiibai
*/
public class PredicateExample1 {
public static void main(String[] args) {
//Predicate String
Predicate predicateString = s -> {
return s.equals("Hello");
};
System.out.println(predicateString.test("Hello"));
System.out.println(predicateString.test("Hello World"));
//Predicate integer
Predicate predicateInt = i -> {
return i > 0;
};
System.out.println(predicateInt.test(5));
System.out.println(predicateInt.test(-5));
}
}
执行上面示例代码,得到以下结果:
true
false
true
false
示例#2
以下示例显示如何使用Predicate接口的默认方法(和,或者否定)。
文件:PredicateExample2.java -
package com.yiibai.tutorial.lambda;
import java.util.function.Predicate;
/**
* @author yiibai
*/
public class PredicateExample2 {
public static void main(String[] args) {
Predicate predicate=s->{
return s.equals("Hello");
};
//AND logical operation
Predicate predicateAnd=predicate.and(s->s.length()>4);
System.out.println(predicateAnd.test("Hello"));
//OR logical operation
Predicate predicateOr=predicate.or(s->s.length()==10);
System.out.println(predicateOr.test("Hello"));
//NEGATE logical operation
Predicate predicateNegate=predicate.negate();
System.out.println(predicateNegate.test("Hello"));
}
}
执行上面示例代码,得到以下结果:
true
true
false