java lambda

122 阅读1分钟

箭头函数、双冒号等

// 非lambda
FutureTask<UserInfo> userInfoFutureTask = new FutureTask<>(new Callable<UserInfo>() {
    @Override
    public UserInfo call() throws Exception {
        return userInfoService.getUserInfo(userId);
    }
});
executorService.submit(userInfoFutureTask);

// lambda(ide 可以自动优化),除了 call 方法的 body 外,其他都可以自动推断出来
FutureTask<UserInfo> userInfoFutureTask = new FutureTask<>(() -> userInfoService.getUserInfo(userId));
executorService.submit(userInfoFutureTask);