java8

之前学习python,对数据进行处理就感觉到了lambda的简洁,这次java8也添加了lambda表达式,确实很吸引人。周末学习了一下java8,有一些体会:

 Java8引入了lambda表达式,是一个很好的尝试,它会使我们的代码更加清爽,更加简洁。但是请等一下,别着急把我们手头的代码全部lambda化,lambda适合进行数值运算,或函数中的逻辑比较简单的地方。不顾规则的使用,会使代码变的臃肿,难以阅读。

 1、 Java8引入了lambda表达式,让函数可以像变量一样使用。那么,我们必须要规定lambda表达式的类型,java中给出了一些通用的类型,当然我们也可以自己定义一些类型,这些类型的本质就是函数式接口。而函数式接口,也就是有且只有一个方法的接口。

 下面我们写一个自己的函数接口:

public interface MyInterface {
   void say(String s);
}
之后调用它:

 MyInterface myInterface = (s) -> {System.out.println(s);};
 myInterface.say("hello");

2、Java8中还在接口中实现了default方法,这个方法其实是为了向前进行二进制兼容的,很棒的一个想法,任何实现了接口的方法,都会拥有接口的defalut方法(前提是接口没有覆盖它,如果实现了它的类或接口覆盖了的话,那只能调用子类的方法了)。集合中新增的foreach方法就是一个很好的例子。

默认函数是有必要。如果没有默认函数的概念,代码是无法兼容之前的代码的。例如,我们在Iterable中定义了foreach函数,而所有实现了该接口的类都要实现这个方法,对JDK自身的类(ArrayList等)没有问题,但是他会导致大量使用该接口的第三方的类库或我们自己编写的代码无法使用。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值