关闭钩子中的Java 8和lambdas

hia*_*ibe 0 java lambda java-8

声纳提到,这个java代码应该与lambda一起使用,但我从未使用过lamdas,也不知道如何使用它.有人能指出我这个代码的正确版本:?

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {

    @Override
    public void run() {
        closeable.close();
        logger.info("Close closeable.");
        executorPool.shutdown();
        logger.info("Shutdown executorPool");
    }
}));
Run Code Online (Sandbox Code Playgroud)

Ger*_*cke 13

只需更换new Runnable()() ->

 Runtime.getRuntime().addShutdownHook(new Thread(() -> {
    closeable.close();
    logger.info("Close closeable.");
    executorPool.shutdown();
    logger.info("Shutdown executorPool");
 }));
Run Code Online (Sandbox Code Playgroud)

Runnable是一个功能接口,这意味着它只有一个抽象方法,因此可以用lambda表达式替换,这种功能比可以作为参数传递功能