From 25c32a71e76b10b78e672ab8f0d390b193f6a7b9 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 14 Mar 2026 11:04:24 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day06-Predicate=E7=9A=84and?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inmind/functional_interface02/Demo09.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 javaSE-day07/src/com/inmind/functional_interface02/Demo09.java 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); + } + +}