java提供的4种函数式接口

 更新时间:2022年03月12日 16:47:08   作者:傲娇的喵酱  
这篇文章主要介绍了java提供的4种函数式接口,函数接口是只有一个抽象方法的接口,用作 Lambda 表达式的类型并有且只有一个抽象方法的接口,下文详细内容,需要的小伙伴可以参考一下

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函数式接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 详解spring boot中使用JdbcTemplate

    详解spring boot中使用JdbcTemplate

    JdbcTemplate 是在JDBC API基础上提供了更抽象的封装,并提供了基于方法注解的事务管理能力。 通过使用SpringBoot自动配置功能并代替我们自动配置beans,下面给大家介绍spring boot中使用JdbcTemplate相关知识,一起看看吧
    2017-04-04
  • JAVA基础之一些不为人知的那些秘密

    JAVA基础之一些不为人知的那些秘密

    一个 Java 程序可以认为是一系列对象的集合,而这些对象通过调用彼此的方法来协同工作,下面这篇文章主要给大家介绍了JAVA基础之一些不为人知的那些秘密,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-01-01
  • SpringBoot配置文件的加载位置实例详解

    SpringBoot配置文件的加载位置实例详解

    springboot采纳了建立生产就绪spring应用程序的观点。 在一些特殊的情况下,我们需要做修改一些配置,或者需要有自己的配置属性。接下来通过本文给大家介绍SpringBoot配置文件的加载位置,感兴趣的朋友一起看看吧
    2018-09-09
  • 浅谈MyBatis3 DynamicSql风格语法使用指南

    浅谈MyBatis3 DynamicSql风格语法使用指南

    这篇文章主要介绍了浅谈MyBatis3 DynamicSql风格语法使用指南,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Spring boot连接MySQL 8.0可能出现的问题

    Spring boot连接MySQL 8.0可能出现的问题

    这篇文章主要给大家介绍了关于Spring boot连接MySQL 8.0可能出现的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-10-10
  • Java 二分查找算法的实现

    Java 二分查找算法的实现

    这篇文章主要介绍了Java 如何实现二分查找算法,帮助大家更好的理解和学习Java 算法,感兴趣的朋友可以了解下
    2020-09-09
  • JDBC连接数据库步骤及基本操作示例详解

    JDBC连接数据库步骤及基本操作示例详解

    这篇文章主要为大家介绍了JDBC连接数据库步骤及基本操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-11-11
  • JDK12的新特性之teeing collectors

    JDK12的新特性之teeing collectors

    这篇文章主要介绍了JDK12的新特性之teeing collectors的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-05-05
  • Java 读取网络图片存储到本地并生成缩略图

    Java 读取网络图片存储到本地并生成缩略图

    用Java做开发经常需要处理图片。本文就来看一下如何保存图片到本地并生成缩略图
    2021-05-05
  • Java8中使用流方式查询数据库的方法

    Java8中使用流方式查询数据库的方法

    这篇文章主要介绍了Java8中使用流方式查询数据库的相关资料,需要的朋友可以参考下
    2016-01-01

最新评论