首页 > 技术文章 > JDK8新特性

dxpbaby 2017-03-31 14:08 原文

1、函数式接口

1.接口中只允许存在一个抽象方法,用@FunctionInterface

2.接口中允许存在静态的实例方法

3.接口中允许重写java.lang.Object的public方法

4.一个接口继承函数式接口,本省也可能是函数式接口,只要满足1,2,3的先天条件即可

2、lambda

1.实例化函数式接口,增强程序的可读性           (接口中抽象方法的参数列表)-> {method body}

2.简化我们的匿名内部类,看下下面的demo

           a.new Tread( () –> {});  直接产生一个线程  Runnable接口的run抽象方法

           b.List的排序简化  list.sort((o1 , o2) –> o1.compareTo(o2)); Comparator接口的compare抽象方法

3.简化method body

          a.当我们的method仅仅是一个表达式的时候,可以直接省略掉{},写return后面的表达式就行

          b.使用 :: 来简化表达式。demo

                引用静态方法   (“hello”)-> System.out::println;

                引用对象的实例方法    x::toString

                引用某个类型的实例方法          String::toString

                引用构造方法    String::new

 

3、接口增强

1.可以允许static方法存在

2.允许默认方法的存在  default void doSomething(){return “OK”;}

推荐阅读