diff --git a/javaSE-day07/src/com/inmind/functional_interface02/Demo09.java b/javaSE-day07/src/com/inmind/functional_interface02/Demo09.java new file mode 100644 index 0000000..29f3b29 --- /dev/null +++ b/javaSE-day07/src/com/inmind/functional_interface02/Demo09.java @@ -0,0 +1,40 @@ +package com.inmind.functional_interface02; + +import java.util.function.Predicate; + +/* +Predicate的and方法 + +default Predicate and(Predicate other) +返回一个组合的谓词,表示该谓词与另一个谓词的短路逻辑AND &&。 + +需求:对一个字符串,使用2个predicate,判断它是否以h开头,它的长度是否大于3 + +boolean test(T) + */ +public class Demo09 { + public static void main(String[] args) { + /*method((String s)->{return s.startsWith("h");}, + (String s)->{return s.length() >3;}, + "helloworld");*/ + + method( s-> s.startsWith("h"), + (String s)->{return s.length() >3;}, + "helloworld"); + + } + + //定义一个方法,接收2个判断条件predicate,1个要判断的字符串,没有返回值 + public static void method(Predicate predicate1, Predicate predicate2, String str) { + /*boolean result1 = predicate1.test(str); + boolean result2 = predicate2.test(str); + boolean result = result1&&result2;*/ + +// boolean result = predicate1.test(str)&&predicate2.test(str); + Predicate newPredicate = predicate1.and(predicate2); + boolean result = newPredicate.test(str); + + System.out.println("最终结果:"+result); + } + +}