此接口是一个测试型接口
1.导包
import java.util.function.Predicate;
2.方法
1.此接口包含一个抽象方法 boolean test(T t)
此接口也是一个泛型类,即 Predicate<T>,使用泛型传递一个数据类型
import java.util.function.Predicate;
public class Demo {
/*
定义一个方法
参数传递一个String类型的字符串
传递一个Predicate接口,泛型使用String
使用Predicate中的方法test对字符串进行判断,并把判断的结果返回
*/
public static boolean checkString(String s, Predicate<String> pre){
return pre.test(s);
}
public static void main(String[] args) {
//定义一个字符串
String s = "abcdef";
//调用checkString方法对字符串进行校验,参数传递字符串和Lambda表达式
boolean b = checkString(s,str->str.length()>5);
System.out.println(b);
}
}
2.接口的默认方法 and
import java.util.function.Predicate;
public class Demo {
/*
定义一个方法,方法的参数,传递一个字符串
传递两个Predicate接口
一个用于判断字符串的长度是否大于5
一个用于判断字符串中是否包含a
两个条件必须同时满足
*/
public static boolean checkString(String s, Predicate<String> pre1,Predicate<String> pre2){
return pre1.and(pre2).test(s);//等价于return pre1.test(s) && pre2.test(s);
}
public static void main(String[] args) {
//定义一个字符串
String s = "abcdef";
//调用checkString方法,参数传递字符串和两个Lambda表达式, 判断字符串的长度是否大于5,判断字符串中是否包含a
boolean b = checkString(s,(String str)->str.length()>5,(String str)->str.contains("a"));
System.out.println(b);
}
}
3.接口的默认方法 or
import java.util.function.Predicate;
public class Demo{
/*
定义一个方法,方法的参数,传递一个字符串
传递两个Predicate接口
一个用于判断字符串的长度是否大于5
一个用于判断字符串中是否包含a
满足一个条件即可
*/
public static boolean checkString(String s, Predicate<String> pre1, Predicate<String> pre2){
return pre1.or(pre2).test(s);//等价于return pre1.test(s) || pre2.test(s);
}
public static void main(String[] args) {
//定义一个字符串
String s = "bc";
//调用checkString方法,参数传递字符串和两个Lambda表达式,判断字符串的长度是否大于5,判断字符串中是否包含a
boolean b = checkString(s,(String str)->str.length()>5,(String str)->str.contains("a"));
System.out.println(b);
}
}
4.接口中的 negate (取反)
import java.util.function.Predicate;
public class Demo {
/*
定义一个方法,方法的参数,传递一个字符串
使用Predicate接口判断字符串的长度是否大于5
*/
public static boolean checkString(String s, Predicate<String> pre){
//return !pre.test(s);
return pre.negate().test(s);//等效于return !pre.test(s);
}
public static void main(String[] args) {
//定义一个字符串
String s = "abc";
//调用checkString方法,参数传递字符串和Lambda表达式,判断字符串的长度是否大于5,并返回结果
boolean b = checkString(s,(String str)->str.length()>5);
System.out.println(b);
}
}