我正在尝试将列表克隆到新列表并在新列表中设置属性。
我正在尝试使用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());