我正在尝试将列表克隆到新列表并在新列表中设置属性。
我正在尝试使用Java8 Stream,因为它使克隆变得简单。
我的代码有效,但是它使Sonar发出了以下代码气味:


  不应声明局部变量,然后立即将其返回或抛出(squid:S1488)


有没有不使用局部变量的方法?
码:

List<myObject> clonedList = listToClone.stream()
                                                .map(item ->  {
                                                    cloned = new myObject(item);
                                                    cloned.setLifeCycle("someLifeCycle");
                                                    return cloned;
                                                })
                                                .collect(Collectors.toList());


谢谢

最佳答案

这是一个警告,因为您不必要地使用了新变量cloned而不是直接链接诸如

List<myObject> clonedList = listToClone.stream()
    .map(item -> {return (new myObject(item)).setLifeCycle("someLifeCycle");})
    .collect(Collectors.toList());

09-26 07:06