Java 8 学习笔记

整理 Java 8 的新特性。

👉 所有文章
lambda 匿名函数
函数式接口 Java 8 : 函数式接口注解 FunctionalInterface Java 8 : 函数式接口 Runnable : 无参数, 无返回值 Java 8 : 函数式接口 Callable : 无参数, 有返回值 Java 8 : 函数式接口 Supplier : 无参数, 有返回值 Java 8 : 函数式接口 Consumer : 1个参数, 无返回值 Java 8 : 函数式接口 Function : 1个参数, 有返回值 Java 8 : 函数式接口 BiFunction : 2个参数, 有返回值
函数引用 Java 8 : 函数引用

Java 8 : 函数式接口 Callable : 无参数, 有返回值


本文关键词:Java 8, 函数式接口,lambda 。

介绍

全路径: java.util.concurrent.Callable 。

该接口在 Java 8 之前就存在,从 Java 8 开始加了注解 @FunctionalInterface。一般用于多线程开发的场景中。

非多线程开发,考虑使用 java.util.function.Supplier ,如果认为语义不合适,考虑自定义。

源码:

@FunctionalInterface
public interface Callable<V> {
    /**
     * Computes a result, or throws an exception if unable to do so.
     *
     * @return computed result
     * @throws Exception if unable to compute a result
     */
    V call() throws Exception;
}

注意,这里的 call 方法声明了会抛出异常。使用时,外层函数要catch或者也跟着声明抛出异常。

示例

代码示例:

import java.util.concurrent.Callable;

public class Main {

    public static void main(String[] args) throws Exception {
        Callable<Long> callable = () -> {
            return 100L;
        };
        System.out.println(callable.call());
    }

}

( 本文完 )

文章目录