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() 方法可以用空字符串替换