java8的4个函数式接口

1.Consumer

有参无返回值,例如集合遍历,消费型接口
方法为 void accept(T t)

	@Test
	public void Consumer() {
		List<String> list=new ArrayList<String>();
		list.add("111");
		list.add("222");
		list.add("333");
		list.add("444");
		list.add("555");
		list.forEach((value)->System.out.println(value));
	}

2.Supplier:

无参有返回值,供给型接口,举个小例子,例如抽奖要生成一个座位号,但区号不确定,或者说生成方式可以人为控制,也可以用其他规则生成
方法为T get()

	@Test
	public void Supplier() {
		lotteryDraw(()->1);
		lotteryDraw(()->24);
		lotteryDraw(()->new Random().nextInt(1000));
	}
	
	@Test
	public void lotteryDraw(java.util.function.Supplier<Integer> supplier) {
		System.out.println(supplier.get());
	}

3.Function<T, R>

一个参数带返回值,类型可以相同也可以不同
函数意味着x->y相当于映射也就是格式转化,例如将时间对字符串进行加密,但具体使用何种方式并没有定义
方法为R apply(T)

	@Test
	public void function() {
		encode(x->Base64.getEncoder().encode(x.getBytes()).toString());
		encode(x->x);
	}
	@Test
	public void encode(Function<String, String> function) {
		String password="张三";
		System.out.println(function.apply(password));
	}

4.Predicate

一个参数返回值为boolean 类型,可以用于进行未知条件的判断
方法为Boolean test(T)

	@Test
	public void predicate() {
		test(x->x>18);
		test(x->x<18);
	}
	@Test
	public void test(Predicate<Integer> predicate) {
		Integer integer=20;
		if(predicate.test(integer)) {
			System.out.println("true");
		}else {
			System.out.println("false");
		}
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值