【发布时间】:2015-05-10 06:58:54
【问题描述】:
声纳违规:安全 - 阵列直接存储
public void setMyArray(String[] myArray) {
this.myArray = myArray;
}
解决方案:
public void setMyArray(String[] newMyArray) {
if(newMyArray == null) {
this.myArray = new String[0];
} else {
this.myArray = Arrays.copyOf(newMyArray, newMyArray.length);
}
}
[或]
public void setMonths(String[] months)
{
this.months = months.clone();
}
以上哪一项是完美的,不会造成任何阻碍?
【问题讨论】:
-
这取决于你的要求!
-
请准确说明您的问题:两种解决方案都是有效的,有助于解决此规则提出的问题,但都各有利弊,因此除非您明确要查找的内容,否则无法回答您的问题.
-
@benzonico 我有一个任务来解决这个声纳违规问题,那么 clone() 是否可以在阵列上正常工作?不会造成任何未来的障碍?