常用的函数式接口_Predicate接口_默认方法and
生活随笔
收集整理的這篇文章主要介紹了
常用的函数式接口_Predicate接口_默认方法and
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
默認方法:and
既然是條件判斷,就會存在與、或、非三種常見的邏輯關(guān)系。其中將兩個Predicate 條件使用“與”邏輯連接起來實現(xiàn)“并且”的效果時,可以使用default方法and 。其JDK源碼為:
default Predicate<T> and(Predicate<? super T> other) {Objects.requireNonNull(other);return (t) ‐> test(t) && other.test(t); } package com.learn.demo06.Predicate;import java.util.function.Predicate;/*邏輯表達式:可以連接多個判斷的條件&&:與運算符,有false則false||:或運算符,有true則true!:非(取反)運算符,非真則假,非假則真需求:判斷一個字符串,有兩個判斷的條件1.判斷字符串的長度是否大于52.判斷字符串中是否包含a兩個條件必須同時滿足,我們就可以使用&&運算符連接兩個條件Predicate接口中有一個方法and,表示并且關(guān)系,也可以用于連接兩個判斷條件default Predicate<T> and(Predicate<? super T> other) {Objects.requireNonNull(other);return (t) -> this.test(t) && other.test(t);}方法內(nèi)部的兩個判斷條件,也是使用&&運算符連接起來的*/ public class Demo02Predicate_and {/*定義一個方法,方法的參數(shù),傳遞一個字符串傳遞兩個Predicate接口一個用于判斷字符串的長度是否大于5一個用于判斷字符串中是否包含a兩個條件必須同時滿足*/public static boolean checkString(String s, Predicate<String> pre1,Predicate<String> pre2){//return pre1.test(s) && pre2.test(s);return pre1.and(pre2).test(s);//等價于return pre1.test(s) && pre2.test(s);}public static void main(String[] args) {//定義一個字符串String s = "abcdef";//調(diào)用checkString方法,參數(shù)傳遞字符串和兩個Lambda表達式boolean b = checkString(s,(String str)->{//判斷字符串的長度是否大于5return str.length()>5;},(String str)->{//判斷字符串中是否包含areturn str.contains("a");});System.out.println(b);} }?
總結(jié)
以上是生活随笔為你收集整理的常用的函数式接口_Predicate接口_默认方法and的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 常用的函数式接口_Predicate接口
- 下一篇: 常用的函数式接口_Predicate接口