java提供的4种函数式接口

网友投稿 413 2022-08-24


java提供的4种函数式接口

目录1、什么是函数式接口2.java提供四种类型的函数式接口

1、什么是函数式接口

函数接口是只有一个抽象方法的接口,用作 Lambda 表达式的类型。使用@FunctionalInterface注解修饰的类,编译器会检测该类是否只有一个抽象方法或接口,否则,会报错。可以有多个默认方法,静态方法。

有且只有一个抽象方法的接口

场景:

适用于函数式编程场景(使用lambda表达式编程)的接口,函数式接口可以适用于lambda使用的接口。

只有确保接口中有且只有一个抽象方法,java中的lambda才能顺利推到

2.java提供四种类型的函数式接口

package day06.java8;

/*

java提供四种类型的函数式接口

Function, 转换类型,传入一个T类型,传出一个R类型

Consumer 消费型

Supplier,什么都不传,给返回一个对象

Predicate 断言CwMPDQz型,传入一个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) {

//CwMPDQz Function, 转换类型

Function function =str -> str.length();

Integer abc = function.apply("abc");

System.out.println(abc);

// Consumer 消费型

Consumer consumer =str-> System.out.println(str);

consumer.accept("abc");

CwMPDQz //Supplier,什么都不传,给返回一个对象

// 这里随机返回一个长度为8的字符串

Supplier supplier = ()-> RandomStringUtils.randomAlphanumeric(8);

String s = supplier.get();

System.out.println(s);

// Predicate 断言型,传入一个T类,返回断言true false

Predicate predicate =str->str.length()>3;

boolean test = predicate.test("abcd");

System.out.println(test);

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python中python-nmap模块的使用(python nmea)
下一篇:Python练习3-XML-RPC实现简单的P2P文件共享
相关文章

 发表评论

暂时没有评论,来抢沙发吧~