Back to Intellij Community

DeclareCollectionAsInterface

java/java-impl/resources/inspectionDescriptions/DeclareCollectionAsInterface.html

2025.3-rc-2707 B
Original Source

Reports declarations of Collection variables made by using the collection class as a type, rather than an appropriate interface. The warning is not issued if weakening the variable type will cause a compilation error.

Example:

// Warning: concrete collection class ArrayList used.
  int getTotalLength(ArrayList<String> list) {
    return list.stream().mapToInt(String::length).sum();
  }

  // No warning, as trimToSize() method is not
  // available in the List interface
  void addData(ArrayList<String> data) {
    data.add("Hello");
    data.add("World");
    data.trimToSize();
  }

A quick-fix is suggested to use the appropriate collection interface (e.g. Collection, Set, or List).