使用lambda重构接口实现?

时间:2015-03-23 14:18:30

标签: java lambda java-8

以下代码是与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);
            }
        };
    }
}

1 个答案:

答案 0 :(得分:4)

您是否愿意这样做取决于您;它主要是风格问题。

如果你这样做,它将如下所示:

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