Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sql-server-2005/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用lambda替换匿名内部类_Java_Lambda_Java 8_Anonymous Class - Fatal编程技术网

Java 用lambda替换匿名内部类

Java 用lambda替换匿名内部类,java,lambda,java-8,anonymous-class,Java,Lambda,Java 8,Anonymous Class,我得到一个声纳的建议,将蛋白类改为lambda List<StsTxn> collect = externalPayments.stream().map(new Function<PaymentExternal, Payment>() { @Override public Payment apply(PaymentExternal t) { Payment payment = new Pay

我得到一个声纳的建议,将蛋白类改为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;
});


在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;
 })
t->{Payment Payment=新付款;尝试{BeanUtils.copyPropertiespayment,t;}捕获非法访问异常|调用目标异常{logger.errore.getMessage,e;}返回付款;}?任何IDE都会建议,您使用哪一个?