JDK8 lamada表达式学习笔记

本文介绍了Java 8中Lambda表达式的使用方法及函数式接口的基本概念。包括实现Runnable和Callable接口的方式,以及如何使用Java SE 8新增的java.util.function包中的Predicate、Consumer、Function等接口进行编程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

不错的总结:

http://www.importnew.com/16436.html

http://www.blogjava.net/wangxinsh55/archive/2014/12/25/421826.html

简单记录下学习lamada使用方式的体会,lamada概念性的东西先不涉及。

java 7 内置的函数式接口:

除此之外,Java SE 8中增加了一个新的包:java.util.function,它里面包含了常用的函数式接口,例如:

  • Predicate<T>——接收T对象并返回boolean
  • Consumer<T>——接收T对象,不返回值
  • Function<T, R>——接收T对象,返回R对象
  • Supplier<T>——提供T对象(例如工厂),不接收值
  • UnaryOperator<T>——接收T对象,返回T对象
  • BinaryOperator<T>——接收两个T对象,返回T对象

一、实现runnable

int age = 26;    //在这里,age就是Effectively final的局部变量
Runnable r = () -> System.out.println("My age is "+age);
new Thread(r).start();

二、实现callabel

Callable cc = ()->42;


三、使用Fuction

Function<Integer,Integer> f = (Integer x) -> x;
System.out.println(f.apply(5));


四、函数式接口

        定义函数式接口:

        注意,经过实践,此接口中,只能有一个方法,为啥呢?

@FunctionalInterface
interface SumLamada {
	public int add(int x,int y);
}

        使用函数接口:

    	/**
    	 * 此处的实现需要特别规范,否则,即便是实现了和
    	 * 方法名称相反的逻辑,语法上也没有问题,也就是说
    	 * 一个接口方法,有n种实现,而且这些实现只在调用时可知
    	 * 一般来讲,接口的实现方并不是调用方,这种用法要慎重
    	 */
    	SumLamada sl = (int x,int y)->x+y;
//    	SumLamada sl = (int x,int y)->x-y;
    	System.out.println(sl.add(5, 6));



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值