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