报告使用集合类作为类型而不是使用相应接口进行的 Collection 变量的声明。 如果削弱变量类型会导致编译错误,则不发出警告。

示例:


  // 警告: 使用了具体集合类 ArrayList。
  int getTotalLength(ArrayList<String> list) {
    return list.stream().mapToInt(String::length).sum();
  }

  // 无警告,因为 trimToSize() 方法
  // 在 List 接口中不可用
  void addData(ArrayList<String> data) {
    data.add("Hello");
    data.add("World");
    data.trimToSize();
  }
建议使用相应集合接口 (例如 CollectionSetList) 进行快速修复。