原创

JDK1.8新特性简介

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);
    }
    
正文到此结束