常用函数式接口Predicate与或非的练习
package LambdaTest.LambdaTest05; import java.util.function.Predicate; /** * FileName: PredicateTest02 * Author: lps * Date: 2022/4/8 13:07 * Sign:刘品水 Q:1944900433 */ public class PredicateTest02 { public static void main(String[] args) { boolean b1 = checkString("lps", (s -> { return s.length() > 5; })); System.out.println(b1); boolean b2 = checkString("HelloWorld", s -> s.length() > 5); System.out.println(b2); System.out.println("=========="); boolean b3 = checkString("lpsjava", s -> s.length() > 4, s -> s.length() < 7); System.out.println(b3); boolean b4=checkStringOR("lpsjava",s -> s.length()>4,s -> s.length()<7); System.out.println(b4); } private static boolean checkStringOR(String s, Predicate<String> pre1, Predicate<String> pre2) { //default Predicate<T> or(Predicate<? super T> other) //返回一个由谓词表示短路逻辑或该谓词和另一个。 // boolean b1 = pre1.test(s); // boolean b2 = pre2.test(s); // boolean b = b1 || b2; // return b; return pre1.or(pre2).test(s); //default Predicate<T> or(Predicate<? super T> other) { // Objects.requireNonNull(other); // return (t) -> test(t) || other.test(t); // } } //同一个字符串给出两个不同的判断条件 最后把这个 private static boolean checkString(String s, Predicate<String> pre1, Predicate<String> pre2) { //default Predicate<T> or(Predicate<? super T> other) //返回一个由谓词表示短路逻辑或该谓词和另一个。 // boolean b1 = pre1.test(s); // boolean b2 = pre2.test(s); // boolean b = b1 && b2; // return b; return pre1.and(pre2).test(s); // default Predicate<T> and(Predicate<? super T> other) { // Objects.requireNonNull(other); // return (t) -> test(t) && other.test(t); // } } private static boolean checkString(String s, Predicate<String> pre) { return pre.test(s); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix