栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Java8中的函数式接口(你知道几个?)

Java 更新时间:发布时间: 百科书网 趣学号

人生如棋,我愿为卒,行动虽慢,谁曾见我后退半步! 

文章目录
    • 前言
    • 1. Supplier
    • 2. Consumer
    • 3. Function
    • 4. UnaryOperator
    • 5. BiFunction
    • 6. Predicate

前言

Java 8对于程序员的主要好处在于它提供了更多的编程工具和概念,能以更快,更重要的是能以更为简洁、更易于维护的方式解决新的或现有的编程问题。今天来探究一下Java8中的函数式接口

函数式接口的定义:类型是接口,有且只有一个抽象方法

函数式接口一般都用@FunctionalInterface注解进行标注,当一个接口打上@FunctionalInterface注解之后就声明为一个函数式接口,这个接口中就只能有一个抽象方法,大于一个抽象方法就会报错。

Java8中的函数式接口

不管什么,先来它一个 hello world练练手

1. Supplier

没有输入,只有一个输出T

普通函数写法:

private String generalFunction(){
    return "hello world"";
}

函数式编程:

// 恭喜你,已经掌握第一步 hello world
Supplier supplier = () -> "hello world";

有没有很简洁的感觉。

测试:

2. Consumer

只有一个输入,没有输出

普通函数写法:

private void generalFunction(String i){
    System.out.println("this is a " + i);
}

函数式编程:

Consumer consumer = i -> System.out.println("this is a " + i);

测试:

3. Function

输入T ,输出R

普通函数写法:

//计算一个数的平方
private int generalFunction(Integer i) {
    return i * i;
}

函数式编程:

Function function = i -> i * i;

测试:

4. UnaryOperator

输入、输出都是 T

普通函数写法:

private int generalFunction(Integer i) {
    return i * i;
}

函数式编程:

UnaryOperator unaryOperator = i -> i * i;

测试:

UnaryOperator是Function的专门化,用于操作数和结果具有相同类型的情况。

5. BiFunction

输入T 、U, 输出 R

普通函数写法:

// 计算两个数相乘,并输出:x*j=?
private String generalFunction(Integer i, Integer j) {
    return i + "*" + j + "=" + i * j;
}

函数式编程:

BiFunction biFunction = (i, j) -> i + "*" + j + "=" + i * j;

测试:

6. Predicate

输入T ,输出boolean值

普通函数写法:

// 判断一个字符串是否是 hello
private boolean generalFunction(String s) {
    return "hello".equals(s);
}

函数式编程:

Predicate predicate = "hello"::equals;

测试:

。。。。。。

除了以上介绍的,还有很多函数接口,看懂了这几个的定义方式 再去学习其他的一看就懂


完整代码已上传 Gitee Spring整合常用组件 欢迎Star

到此,本章内容就介绍完啦,如果有帮助到你 欢迎点个赞吧!!您的鼓励是博主的最大动力! 有问题评论区交流。

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/1072039.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号