[英]Replace Anonymous inner class by lambda
I get a Sonar suggestion that change albuminous inner class to lambda. 我得到一个Sonar建议,将白蛋白内部类改为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;
}
}).
If you're using IntelliJ Idea, then pressing Alt
+ Enter/Return
should automatically convert this to lambda for you. 如果您使用的是IntelliJ Idea,则按Alt
+ Enter/Return
应该会自动将其转换为lambda。
If you've to do this manually, then it's as follows : 如果您必须手动执行此操作,则如下所示:
List<StsTxn> collect = externalPayments.stream().map( t -> {
Payment = new Payment();
//try-catch block
return payment;
});
In Java-8, JVM will automatically look for the relevant method and override it but you can use this feature for functional interfaces only. 在Java-8中,JVM将自动查找相关方法并将其覆盖,但是您只能将此功能用于功能接口。
public Payment createPayment(
List<StsTxn> collect = externalPayments.stream().map(
t -> {
Payment payment = new Payment();
try {
BeanUtils.copyProperties(payment, t);
} catch (IllegalAccessException | InvocationTargetException e) {
logger.error(e.getMessage(), e);
}
return payment;
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.