UC.STRV
不需要通过调用其构建函数来创建新对象,比如字符串或布尔值。使用工厂方法、静态实例或直接使用表达式值可帮助避免不必要的对象创建。如果调用新的 String() 构建函数,而非使用空字符串,则会出现 UC.STRV 警告。
漏洞与风险
该方法会创建额外的对象,将占用更多的内存并降低性能,但又不会带来其他任何功能性的影响。
示例 1
复制
ArrayList str1(int n) {
ArrayList res = new ArrayList();
for (int i = 0; i < n; i++) {
res.add(new String());
}
return res;
}
// correct one
ArrayList str2(int n) {
ArrayList res = new ArrayList();
for (int i = 0; i < n; i++) {
res.add("");
}
return res;
}
针对第 16 行报告 UC.STRV:不必要的对象创建,新的 String() 方法可以用空字符串替换