Java8函数式接口
所属分类 java8
浏览量 778
函数式接口 只有一个抽象方法的接口
可以被隐式转换为Lambda表达式
可以用@FunctionalInterface注解标识
@FunctionalInterface注解是对函数式接口的标识
对接口进行编译级别的检查
如果一个接口使用了这个注解,但是写了两个抽象方法,会出现编译错误
JDK1.8之前 符合函数式接口定义的接口
java.lang.Runnable
java.util.concurrent.Callable
java.util.Comparator
java.awt.event.ActionListener
javax.swing.event.ChangeListener
java.io.FileFilter
java.nio.file.PathMatcher
java.lang.reflect.InvocationHandler
java.security.PrivilegedAction
java.beans.PropertyChangeListener
JDK1.8之后 添加了一组函数式接口
java.util.function.*
Consumer
void accept(T t);
Supplier
T get();
ToIntFunction
int applyAsInt(T value);
import java.util.function.Consumer;
import java.util.function.Supplier;
public class Test {
public static void main(String[] args) {
Consumer consumer = (s) -> System.out.println("hello," + s);
consumer.accept("java");
Supplier supplier = () -> "hello";
String result = supplier.get();
System.out.println(result);
}
}
上一篇
下一篇
mysql导出错误
aerospike prometheus grafana 监控
aerospike启动指定配置文件
Java8常用函数式接口
java8 lambda 原理及性能
aerospike 日志