JAVA8新特性之——函数式接口
作者:互联网
JAVA8新特性之——函数式接口
一:什么是函数式接口?
1.一个接口里面只有一个抽象方法
2.用@FunctionalInterface注解标识 (没有也不报错就好像重写的注解@Override)。
如定义了一个函数式接口如下:
@FunctionalInterface
interface GreetingService {
void sayMessage(String message);}
那么就可以使用Lambda表达式来表示该接口的一个实现(注:JAVA 8 之前一般是用匿名类实现的):
GreetingService greetService1 = message -> System.out.println("Hello " + message);
二:Java内置函数式接口
1.JDK 1.8 之前已有的函数式接口:
· java.lang.Runnable
· java.util.concurrent.Callable
· java.security.PrivilegedAction
· java.util.Comparator
· java.io.FileFilter
· java.nio.file.PathMatcher
· java.lang.reflect.InvocationHandler
· java.beans.PropertyChangeListener
· java.awt.event.ActionListener
· javax.swing.event.ChangeListener
2.JDK 1.8 新增加的函数接口:
· java.util.function*
java内置的4大核心函数式接口
- 消费型接口 Consumer void accept(T t)
- 供给型接口 Supplier T get()
- 函数型接口 Function<T,R> R apply(T t)
- 断定型接口 Predicate boolean test(T t)
三:具体使用业务场景
我开发中暂时还没有用到这块,如果有补充的欢迎大家补充~
标签:java,函数,GreetingService,接口,util,message,JAVA8 来源: https://blog.csdn.net/qq_26598941/article/details/104806287