java提供的4种函数式接口
1、什么是函数式接口
函数接口是只有一个抽象方法的接口,用作 Lambda
表达式的类型。使用@FunctionalInterface
注解修饰的类,编译器会检测该类是否只有一个抽象方法或接口,否则,会报错。可以有多个默认方法,静态方法。
有且只有一个抽象方法的接口
场景:
适用于函数式编程场景(使用lambda
表达式编程)的接口,函数式接口可以适用于lambda
使用的接口。
只有确保接口中有且只有一个抽象方法,java
中的lambda
才能顺利推到
2.java提供四种类型的函数式接口
package day06.java8; /* java提供四种类型的函数式接口 Function<T,R>, 转换类型,传入一个T类型,传出一个R类型 Consumer<T> 消费型 Supplier<T>,什么都不传,给返回一个对象 Predicate<T> 断言型,传入一个T类,返回断言true false */ import org.apache.commons.lang3.RandomStringUtils; import java.util.function.Consumer; import java.util.function.Function; import java.util.function.Predicate; import java.util.function.Supplier; public class Demo04 { public static void main(String[] args) { // Function<T,R>, 转换类型 Function<String,Integer> function =str -> str.length(); Integer abc = function.apply("abc"); System.out.println(abc); // Consumer<t> 消费型 Consumer<String> consumer =str-> System.out.println(str); consumer.accept("abc"); //Supplier<T>,什么都不传,给返回一个对象 // 这里随机返回一个长度为8的字符串 Supplier<String> supplier = ()-> RandomStringUtils.randomAlphanumeric(8); String s = supplier.get(); System.out.println(s); // Predicate<T> 断言型,传入一个T类,返回断言true false Predicate<String> predicate =str->str.length()>3; boolean test = predicate.test("abcd"); System.out.println(test); } }
到此这篇关于java提供的4种函数式接口的文章就介绍到这了,更多相关java函数式接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Java语言实现简单FTP软件 FTP连接管理模块实现(8)
这篇文章主要为大家详细介绍了Java语言实现简单FTP软件,FTP连接管理模块的实现方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-04-04本地启动RocketMQ未映射主机名产生的超时问题最新解决方案
这篇文章主要介绍了本地启动RocketMQ未映射主机名产生的超时问题,本文给大家分享最新解决方案,感兴趣的朋友跟随小编一起看看吧2024-02-02IDEA打开java项目后里面的java文件不能运行解决办法
这篇文章主要给大家介绍了关于IDEA打开java项目后里面的java文件不能运行的解决办法,有时候想运行别人的项目,但是别人的项目并非IDEA项目(甚至只有源码),当我们打开项目时候,并不能运行,需要的朋友可以参考下2023-10-10如何解决redis的NOAUTH Authentication required异常
这篇文章主要介绍了Jedis异常解决:NOAUTH Authentication required,,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值2019-07-07
最新评论