This question already has answers here:
How to convert this code to java8 lambda
                                
                                    (3个答案)
                                
                        
                5年前关闭。
            
        

以下代码是与spring框架一起使用的常见构造。其目的是提供配置类,该类本身提供所需的实现类,此处为AsyncUncaughtExceptionHandler

是否有可能/建议使用新的Java 1.8 Lambda表达式重构此代码?如果是,怎么办?

@Component
public class AsyncConfigurer extends AsyncConfigurerSupport {
    @Autowired
    private CustomService service;

    @Autowired
    private Logger logger;

    @Override
    public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
        return new AsyncUncaughtExceptionHandler() {
            @Override
            public void handleUncaughtException(Throwable ex, Method method, Object... params) {
                service.call();
                logger.fatal(ex);
            }
        };
    }
}

最佳答案

是否要执行此操作取决于您自己;这主要是风格问题。

如果您这样做,它将看起来像这样:

@Override
public AsyncUncaughtExceptionHandler getAsyncUncaughtExceptionHandler() {
  return (ex, method, params) -> {
    service.call();
    logger.fatal(ex);
  };
}

09-12 09:14
查看更多