Java8新特性之 函数式接口FunctionalInterface详解
2017-06-08 22:24
483 查看
Java 8已经公布有一段时间了,种种迹象表明Java 8是一个有重大改变的发行版。本文将java8的一个新特性 函数式接口 单独深度剖析。
2.接口中允许存在重写Object类的抽象方法。如在FunctionInteTest接口中,新增一个toString()方法,仍然不会报错。因为FunctionInteTest接口的实现类一定是Object类的子类,继承了toString()方法,也就自然实现了TestInterface 接口定义的抽象方法toString()。
函数式接口的范例:
@FunctionalInterface是JDK 8 中新增的注解类型,用来描述一个接口是函数式接口。例如我们熟悉的Runnable 接口:@FunctionalInterface public interface Runnable { /** * When an object implementing interface <code>Runnable</code> is used * to create a thread, starting the thread causes the object's * <code>run</code> method to be called in that separately executing * thread. * <p> * The general contract of the method <code>run</code> is that it may * take any action whatsoever. * * @see java.lang.Thread#run() */ public abstract void run(); }
函数式接口的特征:
接口中只定义了一个抽象方法。如 FunctionInteTest接口中,只有一个sayHello()方法。package in; /************************************** * *** http://weibo.com/lixiaodaoaaa ** * *** create at 2017/6/8 22:06 ****** * ******* by:lixiaodaoaaa *********** **************************************/ @FunctionalInterface public interface FunctionInteTest { public abstract void sayHello(); }
2.接口中允许存在重写Object类的抽象方法。如在FunctionInteTest接口中,新增一个toString()方法,仍然不会报错。因为FunctionInteTest接口的实现类一定是Object类的子类,继承了toString()方法,也就自然实现了TestInterface 接口定义的抽象方法toString()。
/************************************** * *** http://weibo.com/lixiaodaoaaa ** * *** create at 2017/6/8 22:06 ****** * ******* by:lixiaodaoaaa *********** **************************************/ @FunctionalInterface public interface FunctionInteTest { public abstract void sayHello(); public abstract String toString(); }
函数式接口的主要作用
使用@FunctionalInterface可以防止以后在接口中添加新的抽象方法签名。就是限定了只能用此抽象方法,别的方法不能用。直接限制死。相关文章推荐
- Java8 新特性之一---------Lambda表达式和函数式接口
- java8新特性之函数式接口、lambda表达式、接口的默认方法、方法和构造函数的引用
- Java8新特性_四大内置核心函数式接口
- Java 8.0新增特性(内建函数式接口)
- Java 8新特性-5 内建函数式接口
- Java 8新特性 内建函数式接口详解
- Java8新特性(一)——Lambda表达式与函数式接口
- Java8新特性(内置的核心函数式接口)
- java8新特性回顾(一)---函数式接口和lamda表达式
- JavaEE进阶知识学习-----Java8新特性知识学习-2-函数式接口
- Java8特性总结(二)Lambda表达式,函数式接口,方法引用
- JAVA8新特性[第二季]-函数式接口
- java8新增特性(二)----函数式接口(Functional)
- Java8新特性 -- 四大内置的核心函数式接口
- java 8 新特性(1.函数式接口 - Functional Interface)
- java8新特性lambda表达式, 函数式接口以及Steam流和新的日期时间例子代码
- Java8新特性Lambda表达式、函数式接口
- 浅析Java8新特性Lambda表达式和函数式接口
- java学习:java8新特性之一,函数式接口
- java8新特性(一)之Lambda表达式和函数式接口