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函数式接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
springCloud Gateway StripPrefix和PrefixPath过滤器的区别及说
这篇文章主要介绍了springCloud Gateway StripPrefix和PrefixPath过滤器的区别及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2025-06-06
Java中四种访问控制权限解析(private、default、protected、public)
java当中有4种访问修饰限定符privat、default(默认访问权限),protected以及public,本文就详细的介绍一下这四种方法的具体使用,感兴趣的可以了解一下2023-05-05
java ThreadPoolExecutor 并发调用实例详解
这篇文章主要介绍了java ThreadPoolExecutor 并发调用实例详解的相关资料,需要的朋友可以参考下2017-05-05
java中String,数组,ArrayList三者之间的转换
这篇文章主要介绍了java中String,数组,ArrayList三者之间的转换,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2021-01-01


最新评论