java - 用 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;
}
}).
解决方案
如果您使用的是 IntelliJ Idea,那么按Alt
+Enter/Return
应该会自动为您将其转换为 lambda。
如果您必须手动执行此操作,则如下所示:
List<StsTxn> collect = externalPayments.stream().map( t -> {
Payment = new Payment();
//try-catch block
return payment;
});
推荐阅读
- amazon-web-services - 不支持 SSM 安全参考:AWS::EC2::Instance/Metadata
- python - Pandas MultiIndex:对每个第一个索引使用相同的第二个索引
- python - 导入自定义模块
- typescript - 定义嵌套对象的类型 - TS
- c++ - 在编译时评估函数成本的通用方法
- typescript - 我应该在哪里打开 VS Code 中改进的 TSDoc 支持的问题?
- java - Intellij 启动错误:IDE 尚未初始化
- ruby-on-rails - 使用 ActiveRecord 构建器方法时有没有办法填充反向关系
- java - Spring PropertiesPersistingMetadataStore 文件中的无效字符 \u0000
- reactjs - 黑客可以影响国家内部的信息吗?