java函数式接口

世上唯一不能复制的是时间,唯一不能重演的是人生,唯一不劳而获的是年龄。该怎么走,过什么样的生活,全凭自己的选择和努力。人生很贵,请别浪费!与智者为伍,与良善者同行。java函数式接口,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

java技术文档

1. 四大基本函数式接口

Predicate 判定型接口
//是否相等
Predicate<Object> equal = Predicate.isEqual("");
Predicate<String> predicate = str -> str.equals("7");
//进行 非操作 !
Predicate<String> negate = predicate.negate();
//进行 与操作&& 先判断当前的 再调用之后的
Predicate<String> and = predicate.and(num -> num.equals("6"));
//进行"||"操作,或操作
Predicate<String> or = predicate.or(num -> num.equals("5"));
//是否满足要求
predicate.test()
Function 函数型接口
//返回一个输出跟输入一样的对象
Function.identity();
Function<Integer, Integer> function = i -> i * 20;
//将该函数应用到给定的参数 输入函数的参数 输出函数的结果
System.out.println(function.apply(8));
//先调用当前function函数的apply方法,将结果作为输入参数传递给andThen函数调用apply()
Function<Integer, Integer> andThen = a-> a - 10;
System.out.println(function.andThen(andThen ).apply(2));
//首先执行compose function的apply方法, 将它的返回作为输入参数再应用当前的function
Function<Integer, Integer> compose = a -> a - 10;
System.out.println(function.compose(compose).apply(14));
Consumer 消费型接口 只有输入,没有返回值
Consumer consumer = str-> System.out.println(str+"11111");
//给定参数执行此操作
consumer.accept("消费型接口");
System.out.println(consumer);
//andThen 先输出consumer 然后输出andThen 即:好奇  好奇猫
getStr("好奇", s -> System.out.println(String.valueOf(s)),
s-> System.out.println(s+"猫"));
public static void getStr(String str, Consumer consumer ,Consumer andThen) {
	consumer.andThen(andThen).accept(str);
}
Supplier 供给型接口 没有参数,只有返回值
Supplier<String> supplier = ()-> "今天天气真好";
//get 取值
System.out.println(supplier.get());

2.BiPredicate接口

BiPredicate接口同基本函数式接口Predicate 相似
接受两个变量返回一个Boolean类型的值
//判断时间端是否在指定时间内
LocalDateTime startTi = Instant.ofEpochMilli(1661930743330L).atZone(ZoneId.systemDefault()).toLocalDateTime();
LocalDateTime endTi = Instant.ofEpochMilli(1662999957233L).atZone(ZoneId.systemDefault()).toLocalDateTime();
LocalDateTime time=LocalDateTime.now();	
BiPredicate<LocalDateTime,LocalDateTime > biPredicate = (startTime,endTime)->
		time.isAfter(startTime) && time.isBefore(endTime);
if (biPredicate.test(startTi,endTi)){
	System.out.println("成立");
}else {
	System.out.println("时间段不在指定时间内");
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/260329.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!