JD.UNMOD
尝试修改不可修改的集合被检测到时,将报告此错误。这种尝试会导致运行时异常。
示例 1
复制
public static void main(String[] args) {
argsCol = createCollection(args);
for (final Iterator<String> iterator = argsCol.iterator(); iterator.hasNext();) {
final String arg = iterator.next();
if ("version".equals(arg)) {
printVersion();
iterator.remove();
}
}
run();
}
public static Collection<String> createCollection(final String[] array) {
return Arrays.asList(array);
}
针对第 18 行的代码段报告 JD.UNMOD:尝试通过不可修改的集合 argsCol 的迭代器对其进行修改。
示例 2
复制
public static void main(String[] args) {
argsCol = createCollection(args);
for (final Iterator<String> iterator = argsCol.iterator(); iterator.hasNext();) {
final String arg = iterator.next();
if ("version".equals(arg)) {
printVersion();
iterator.remove();
}
}
run();
}
public static Collection<String> createCollection(final String[] array) {
final List<String> list = new ArrayList<String>();
for (final String str : array) {
list.add(str);
}
return list;
}
上一代码段中的问题已修复:代码仍在通过“argsCol”的迭代器对其进行修改,然而“argsCol”在此处不可修改;见已修改的“createCollection”方法。此处未显示 JD.UNMOD 报告。
扩展
此检查器可通过 Klocwork 知识库进行扩展。有关详情,请参阅调整 Java 分析。