有效的Java说:

有人可以告诉我什么是安全漏洞吗?

最佳答案

声明static final public字段通常是类常量的标志。非常适合基本类型(int,doubles等)和不可变的类,例如string和java.awt.Color。对于数组,问题在于,即使数组引用是恒定的,数组的元素仍然可以更改,并且因为它是一个字段,所以更改不 protected ,不受控制并且通常是不受欢迎的。

为了解决这个问题,可以将数组字段的可见性限制为私有(private)或程序包私有(private),因此在查找可疑修改时,可以考虑使用较小的代码体。另外,通常更好的方法是一起删除数组,并使用“列表”或其他适当的集合类型。通过使用集合,您可以控制是否允许更新,因为所有更新都通过方法进行。您可以使用Collections.unmodifiableList()包装您的 Collections ,以防止更新。但是请注意,即使集合是不可变的,您也必须确保存储在集合中的类型也是不可变的,否则会重新出现假定的常量的未经请求的更改的风险。

10-06 06:32