Java lambda入门

Lambda 表达式(lambda expression)是一个匿名函数,即没有函数名的函数。

上代码,从最基本的接口往下引入lambda表达式

interface Arithmatic{
    int sum(int a , int b );
}
public class LambdaEx {
    public static void main(String[] args) {
        Arithmatic ss = new Arithmatic() {
            @Override
            public int sum(int a, int b) {
                return 0;
            }
        };

可以看到 ss = new Arithmatic(){...},它是一个匿名类,按照Java语法,接口是不能至创建实例的,这里其实是省略了接口的实现类,

class Qiuhe implements Arithmatic{
    @Override
    public int sum(int a, int b) {
        return a+b;
    }
}

而这里定义的Qiuhe类,可以取任意合法的名字。为了简化代码,一般的,接口对象都是引用子类对象,这个子类我们可以省略,用匿名类来替代他,然后重写他的方法即可。

然而众人还是对匿名类的写法感觉还是很冗余,于是开发了一套更简洁的语法。

lambda表达式语法:(parameters) -> expression  或  (parameters) ->{ statements; }

可以看得出来,确实比之前的代码更简洁了,他省略了,修饰符,关键字,函数名...查阅源码得出,lambda表达式的函数式接口,只有一个抽象方法。

应用语法生成新的代码

interface Arithmatic{int sum(int a , int b );}
public class LambdaEx {
    public static void main(String[] args) {
        Arithmatic sum2 = (a,b)-> a+b;
    }
}

可以清楚的看到,代码量少的不止一点点。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值