gpt4 book ai didi

java - 安全性 - 方法返回内部数组 - Sonar 安全警告 - 即使我返回克隆

转载 作者:太空宇宙 更新时间:2023-11-04 13:55:14 26 4
gpt4 key购买 nike

即使我没有返回原始数组而是它的克隆,下面的返回语句也会给我一个 Sonar 安全警告。

执行此操作的“正确”方法是什么?

public String[] getList() {
return list!=null? list.clone():null;
}

最佳答案

编辑了我之前的答案,发现了一些明显的错误:)

List.clone() 不起作用,因为它返回列表的浅拷贝。所以基本上它只是返回对原始列表的引用。我们不希望这里出现这样的情况。我们想要的是一个全新的数组,它没有返回相同的引用。为此,最好的想法始终是创建一个新数组并运行一个 for 循环,如下所示:

String[] newArr = new String[list.length];
int i = 0;
for (String s : list) {
newArr[i++] = s
}

如果您想知道为什么会出现此问题,请参阅此 answer :)

关于java - 安全性 - 方法返回内部数组 - Sonar 安全警告 - 即使我返回克隆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29895191/

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