gpt4 book ai didi

java - 安全——数组直接存储

转载 作者:搜寻专家 更新时间:2023-11-01 02:12:05 24 4
gpt4 key购买 nike

我什至提到:Sonar Violation: Security - Array is stored directly

我的代码是--->

    public final void setSelectedObjectsList(final ScheduleDTO[] selectedObjectsList) 
// Security - Array is stored directly
//The user-supplied array 'selectedObjectsList' is stored directly.
{
if (selectedObjectsList != null) {
this.selectedObjectsList = selectedObjectsList.clone();
} else {
this.selectedObjectsList = null;
}
}

这已经解决了为什么 Sonar 在函数参数处对我大喊大叫的防御性复制问题。

这不是不重复的 Sonar Violation: Security - Array is stored directly

再次感谢您的帮助和时间。

最佳答案

不确定 Sonar 在想什么,但是使用 clone() 的防御性浅拷贝应该适用于数组,Arrays.copyOfSystem.arrayCopy( )

另一方面,由于您已经将数组称为列表:selectedObjectsList,您还可以将其设为实际列表并稍微重构一下:

public final void setSelectedSchedules(List<ScheduleDTO> selectedSchedules) {
this.selectedSchedules = selectedSchedules != null ? new ArrayList<ScheduleDTO>(selectedSchedules) : null;
}

关于java - 安全——数组直接存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16903602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com