Java
Collection declared by class, not interface
Warning
New
Last modified: 03 December 2024 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
).
- By ID
Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.
CollectionDeclaredAsConcreteClass
Here you can find the description of settings available for the Collection declared by class, not interface inspection, and the reference of their default values.
Inspection Details | |
---|---|
By default bundled with: | |
Can be installed with plugin: | Java, 243.23126 |
Thanks for your feedback!
Was this page helpful?