From 20932dcfcb3e2ed8bb105d83fc056d4ddcbf3297 Mon Sep 17 00:00:00 2001 From: xuxin <840198532@qq.com> Date: Sat, 14 Mar 2026 10:42:08 +0800 Subject: [PATCH] =?UTF-8?q?=E8=BF=9B=E9=98=B6day06-=E5=B8=B8=E7=94=A8?= =?UTF-8?q?=E7=9A=84=E5=87=BD=E6=95=B0=E5=BC=8F=E6=8E=A5=E5=8F=A3=5FPredic?= =?UTF-8?q?ate(=E6=95=B0=E6=8D=AE=E7=AD=9B=E9=80=89)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../inmind/functional_interface02/Demo08.java | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 javaSE-day07/src/com/inmind/functional_interface02/Demo08.java diff --git a/javaSE-day07/src/com/inmind/functional_interface02/Demo08.java b/javaSE-day07/src/com/inmind/functional_interface02/Demo08.java new file mode 100644 index 0000000..e8db050 --- /dev/null +++ b/javaSE-day07/src/com/inmind/functional_interface02/Demo08.java @@ -0,0 +1,45 @@ +package com.inmind.functional_interface02; + +import java.util.function.Predicate; + +/* +12.常用的函数式接口_Predicate +Interface Predicate +boolean test(T t) 用来判断或者筛选数据 +Predicate函数式接口的作用:用来进行数据筛选,判断指定的数据是否符合业务 + +什么时候要使用Predicat呢?? +当我们要定义一个有一个参数,并且返回值类型为boolean的函数式接口时,直接使用Predicate + +需求:使用Predicate接口判断指定的字符串长度是否>3 ,(包含java) + */ +public class Demo08 { + public static void main(String[] args) { + /*boolean result = method(new Predicate() { + @Override + public boolean test(String s) { + *//*if (s.length() > 3) { + return true; + } else { + return false; + } *//* + return s.length() > 3; + } + }, "woaijava");*/ + + //--------------------使用函数式编程思想优化代码,重点关注做什么,而不是怎么做--------------------- +// boolean result = method((String s)->{return s.length()>3;},"woaijava"); + boolean result = method(s-> s.length()>3,"woaijava"); + + boolean result1 = method((String s)->{return s.contains("java");},"woaijaa"); + + System.out.println("是否满足长度大于3条件:"+result); + System.out.println("是否满足包含java:"+result1); + } + + //定义出一个返回值为boolean,参数是Predicate接口,String的数据的方法 + public static boolean method(Predicate predicate, String s) { + boolean result = predicate.test(s); + return result; + } +}