首页 > 解决方案 > 用 lambda 替换匿名内部类

问题描述

我得到一个声纳建议,将白蛋白内部类更改为 lambda。

List<StsTxn> collect = externalPayments.stream().map(new Function<PaymentExternal, Payment>() {

            @Override
            public Payment apply(PaymentExternal t) {
                Payment payment = new Payment();
                try {
                    BeanUtils.copyProperties(payment, t);
                } catch (IllegalAccessException | InvocationTargetException e) {
                    logger.error(e.getMessage(), e);
                }
                return payment;
            }
        }).

标签: javalambdajava-8anonymous-class

解决方案


如果您使用的是 IntelliJ Idea,那么按Alt+Enter/Return应该会自动为您将其转换为 lambda。

如果您必须手动执行此操作,则如下所示:

List<StsTxn> collect = externalPayments.stream().map( t -> {
    Payment = new Payment();
    //try-catch block
    return payment;
});


推荐阅读