首页  

Java8函数式接口     所属分类 java8 浏览量 232
函数式接口 只有一个抽象方法的接口
可以被隐式转换为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<T>
void accept(T t);

Supplier<T>
T get();

ToIntFunction<T>
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<String> supplier = () -> "hello";
        String result = supplier.get();
        System.out.println(result);
    }
}




上一篇     下一篇
mysql导出错误

aerospike prometheus grafana 监控

aerospike启动指定配置文件

Java8常用函数式接口

java8 lambda 原理及性能

aerospike 日志