函数式接口

函数式接口

1.函数式接口

本篇文章适合新手入门

1.1定义
A 定义:函数式接口(Functional Interface)就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的接口。
B 适用场景:主要用于函数式编程(即使用lambda表达式编程),函数式接口可以使用于lambda进行参数定义。
C 使用流程:
1)定义函数式接口
2)定义方法使用上面定义的接口进行参数接收,并调用接口中的方法进行逻辑处理
3)具体使用2中的方法的时候,传递lambda表达式进行实际上的逻辑处理
package com.test.fun;
/**
* @FunctionalInterface 注解可以检测接口是否为函数式接口
* 如果不是函数式接口,则编译失败
*/
@FunctionalInterface
public interface Compute<T> {
    public int add(int a , int b );
//  public int add(int a , int b );
}
1.2 jdk 8 提供的函数接口
接口名说明
Function<T,R>接收一个T类型的参数,返回一个R类型的结果
Consumer接收一个T类型的参数,不返回值
Predicate接收一个T类型的参数,返回一个boolean类型的结果
Supplier不接受参数,返回一个T类型的结果(没有输入,输出是一个对象)
建议自己运行代码尝试一下:

public class FunctionInterfaceTest {
	public static void main(String[] args) {
		function();
		consumer();
		supplier();
		predicate();
	}
	private static void predicate() {
		System.out.println("========Predicate========");
		Predicate<Integer> predicate=(n)->n>10;
		System.out.println(predicate.test(23));
		
		String s="123456";
		Predicate<String> predicate1=s::contains;
		System.out.println(predicate1.test("123")==true);
		System.out.println(predicate1.test("000")==false);
	}
	private static void supplier() {
		System.out.println("========Supplier========");
//		Supplier<Boolean>  supplier=()->new Random().nextBoolean();
		Supplier<Date>  supplier=Date::new;
		System.out.println(supplier.get());
	}
	private static void consumer() {
		System.out.println("========Consumer========");
//		Consumer<String> consumer=(s)->{
//			System.out.println(s);
//		};
		Consumer<String> consumer=System.out::println;
		consumer.accept("你好世界");
	}
	private static void function() {
		System.out.println("========function========");
//		Function<String, Integer> function=(s)->Integer.valueOf(s);
		Function<String, Integer> function=Integer::valueOf;
		//类的static方法,让函数成为变量.
		Integer ret = function.apply("1234");
		System.out.println(ret);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值