JDK1.8新特性简介

  baikapala

1、接口定义增强

可以用static default来定义接口方法


用default来定义普通方法,这样子类就不用强制覆写这个方法了。
用static来定义静态方法


2、lamda表达式



专给lanmda使用的接口加上annotation @FunctionalInterface
其中只能有一个方法
使用:
(参数) -> 程序执行语句
(参数) -> {程序执行语句块}
简单返回:
(参数) -> 表达式;


3、方法引用

方法引用与对象引用类似,为方法设置别名,分为四种形式:
引用静态方法: 类名称 ::static 方法名称
引用某个对象的方法:  实例化对象 :: 普通方法
引用特定类型的方法:  特定类 :: 普通方法
引用构造方法:  类名称 :: new


方法引用与lamda表达式相关联,具体使用需要依赖lamda


4、内建函数式接口

方法的引用,四种接口的代码示例完成。


4个内建函数式接口:


功能型接口-Function      startWith
@FunctionalInterface
public interface Function<T, R> {
public R apply(T t);
}


供给型接口-Supplier    toUpperCase
@FunctionalInterface
public interface Supplier<T> {
public T get();
}


断言型接口-Predicate   equals
@FunctionalInterface
public interface Predicate<T> {
public boolean test(T t);
}


消费型接口-Consumer
@FunctionalInterface   System.out.println()
public interface Consumer<T> {
public void accept(T t);
}