默认方法:and

既然是条件判断,就会存在与、或、非三种常见的逻辑关系。其中将两个Predicate 条件使用“与”逻辑连接起来实现“并且”的效果时,可以使用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,表示并且关系,也可以用于连接两个判断条件default Predicate<T> and(Predicate<? super T> other) {Objects.requireNonNull(other);return (t) -> this.test(t) && other.test(t);}方法内部的两个判断条件,也是使用&&运算符连接起来的*/
public class Demo02Predicate_and {/*定义一个方法,方法的参数,传递一个字符串传递两个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";//调用checkString方法,参数传递字符串和两个Lambda表达式boolean b = checkString(s,(String str)->{//判断字符串的长度是否大于5return str.length()>5;},(String str)->{//判断字符串中是否包含areturn str.contains("a");});System.out.println(b);}
}

常用的函数式接口_Predicate接口_默认方法and相关推荐

  1. Java 8——接口中个的默认方法和静态方法

    在Java SE 8之前,interface只是事物的抽象,用来定义统一的抽象事物和描述事物的抽象行为和属性. 但是在Java SE 8中,增加了可以在interface中增加默认实现的行为和事物的静 ...

  2. Java接口、implements关键字、接口中抽象方法,默认方法,静态方法,私有方法,常量、final关键字

    接口: 接口是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量.构造方法和成员方法,那么 接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JD ...

  3. java8 默认方法_默认方法:Java 8的无名英雄

    java8 默认方法 几周前,我写了一个博客,说开发人员学习新语言是因为它们很酷. 我仍然坚持这个主张,因为关于Java 8的事情真的很酷. 尽管毫无疑问,该节目的明星是添加了Lambdas和将函数提 ...

  4. gdb 扩展 默认参数_默认方法一种扩展旧代码的方法

    gdb 扩展 默认参数 如您所知,Java的新版本已于2014年3月18日发布,我将介绍一系列文章来演示其新功能,也许在某些方面,我将谈论我的想法和批评. 我认为重要的第一个功能是"默认方法 ...

  5. 常用的函数式接口_Predicate接口_默认方法ornegate

    默认方法:or 与and 的"与"类似,默认方法or 实现逻辑关系中的"或".JDK源码为: default Predicate<T> or(Pre ...

  6. 常用的函数式接口_Function接口_默认方法andThen

    默认方法:andThen Function 接口中有一个默认的andThen 方法,用来进行组合操作.JDK源代码如: default <V> Function<T, V> a ...

  7. java8接口写静态方法_Java 8接口更改–静态方法,默认方法

    java8接口写静态方法 Java 8 interface changes include static methods and default methods in interfaces. Prio ...

  8. 注解默认继承_默认方法和多重继承

    注解默认继承 最近卢卡斯JOOQ埃德尔发布和文章有关嵌套类及其使用. 这是一个有趣的话题,他的文章一如既往地有趣并且值得一读. 只有一个简短的声明我无法同意,我们有一个简短的回复链,导致了默认方法,以 ...

  9. 常用的函数式接口_Predicate接口练习_集合信息筛选

    练习:集合信息筛选 题目 数组当中有多条"姓名+性别"的信息如下,请通过Predicate 接口的拼装将符合要求的字符串筛选到集合ArrayList 中,需要同时满足两个条件: 1 ...

最新文章

  1. 中国科学:中科院遗传发育所揭示拟南芥二半萜对根系微生物组的调控机制
  2. tidb mysql5.7_MYSQL5.7实时同步数据到TiDB
  3. leetcode 797. All Paths From Source to Target | 797. 所有可能的路径(回溯法)
  4. 跟踪反应流–将Spring Cloud Sleuth与Boot 2结合使用
  5. ekf pose使用方法 ros_【百川小课堂】第13课—ROS学习(二)
  6. 【Vue】—解决页面图片加载抖动的问题
  7. Spark 基础 —— RDD(创建 RDD)的两种方式
  8. DB2with的定义与用法
  9. codeforces 486 E. LIS of Sequence(dp)
  10. 微型计算机控制技术第三版第四章课后答案,微型计算机控制技术第4章习题答案.doc...
  11. Java中日期格式化yyyyMMdd和YYYYMMdd的区别
  12. python_体脂率的计算
  13. D525安装黑群晖DSM6.1.7教程
  14. 写一本技术书能赚多少钱
  15. 网络负载均衡器(NLB)
  16. 苹果手机为什么Apple ID会被停用
  17. 华东师大二月月赛游记
  18. PI AAE (Advanced Adapter Engine) 介绍一
  19. USB转RS485代替PC/PPI通讯电缆
  20. 华为运营商级路由器配置示例 | 配置BGP方式VPLS示例

热门文章

  1. XMLHttpRequest Level 2 使用指南
  2. unittest单元测试简单介绍
  3. 【bzoj 2435】[Noi2011]道路修建(dfs)
  4. python爬虫实验
  5. nand ubi - 5 kernel和ubi
  6. 在WPF程序中使用多线程技术
  7. Asp.Net iframe Cookie 域 的问题!
  8. Spring Web MVC是什么
  9. python sqlalchemy mysql 自动映射
  10. CSDN、博客园等6大技术博客平台的写作体验测评