我正在研究一个遗留代码库,该代码库到处都引用了java.util.Vector
。我收到声纳错误,告诉我将其替换为ArrayList
。由于该引用无处不在,因此我想采取所有必要的预防措施,以避免用ArrayList替换Vector可能引起的任何问题。
我对此一无所获(可能是因为它已经是一个老问题了,而且大多数人肯定在十年前就已经走过了这个问题)。我应该注意什么?由于vector是线程安全的,有什么简单的方法可以替换它而又不会引起线程问题?
仅供参考,这是一个Web项目,没有明确使用多线程。
答案 0 :(得分:0)
Vector
已同步,并且不接受null
值。您可以使用
List<String> l = Collections.synchronizedList(new ArrayList<String>())
,但不是100%相同的替代品。如果您的项目中没有良好的测试,请不要替换Vector
并添加//NOSNAR
以在给定的行中禁用声纳检查。