Java 8 函数式接口
原创
©著作权归作者所有:来自51CTO博客作者wx63186321c235c的原创作品,请联系作者获取转载授权,否则将追究法律责任
函数式接口(Functional Interface)
就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
函数式接口可以对现有的函数友好地支持 lambda。
JDK 1.8 新增加的函数接口:
java.util.function 它包含了很多类,用来支持 Java的 函数式编程,这里我们只讲四种
接口 | 描述 |
Function<T,R>
| 转换型,将T类型,转换成R类型。return R
|
Consumer<T>
| 消费型,进来T,没有return。是void
|
Supplier<T>
| 供给型,没有参数。生成一个T,return T
|
Predicate<T>
| 断言型,传入T,返回布尔类型
|
Function 转换型
import java.util.function.Function;
public class Demo05 {
public static void main(String[] args) {
Function<String,Integer> function = str->str.length();
Integer abc = function.apply("abc");
System.out.println(abc);
}
}
Consumer 消费型
Consumer<String> consumer = s -> System.out.println(s);
consumer.accept("def");
Supplier 供给型
Supplier<String> stringSupplier = ()-> RandomStringUtils.randomAlphabetic(8);
String s = stringSupplier.get();
System.out.println(s);
Predicate 断言型
Predicate<String> predicate = str->str.length()>3;
boolean test = predicate.test("abcd");
System.out.println(test);
相关文章:
上一章:
Java8新特性之Lambda 表达式_傲娇的喵酱的博客-
下一章:
java stream 流_傲娇的喵酱的博客