java8新特性一:lambda表达式

0,首先有个新名词,函数式接口:有且仅有一个抽象方法的接口。为什么要特别定义这么一个玩意儿,老老实实都叫接口不好吗?

     开发jdk这帮大佬们发现java相比那些新兴语言写法过于臃肿,想简化写法不至于落后。然而全部简化却实现不了,只能简化 “有且仅有一个抽象方法的接口”这样的类,于是定义个新名词,给这种接口提供简便写法。

1.lambda表示是不是什么地方都能用的。它只用在函数式接口。

2 ,举个栗子 有这么一个接口

public interface LumbdaTestinterface {
      String test(String name);
}

我想要个实现对象怎么办?第一个方法另写一个类实现接口,重写test方法,

第二个方法,直接在使用的时候创建匿名实现类比如这样

LumbdaTestinterface lumbdaTestinterface= new LumbdaTestinterface() {
    @Override
    public String test(String name) {
       return "苗条的"+name;
    }
};

lambda表示式就是简化上面的匿名方式 实现如下

LumbdaTestinterface testLambdaService = (name) -> {        return "苗条的"+name;        };

前面的括号直接写参数,多参数用逗号分隔(类型可省),箭头后括号直接写方法。 只有一个参数,时可以不写括号。箭头后不换行的话大括号可省,return也能省。

3。这个实现连个方法名都没有,为什么能实现test方法呢?这就是1中提到的,这种写法要求类只能有一个抽象方法,所以这种写法就默认是要实现的方法。

 

 

 

转载于:https://my.oschina.net/u/3394093/blog/3072455

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值