Inspectopedia Help

Type may be weakened

Reports variable and method return types that can be changed to a more abstract (weaker) type. This allows making the code more abstract, hence more reusable.


// Type of parameter can be weakened to java.util.List void processList(ArrayList<String> list) { if (list.isEmpty()) return; System.out.println("Processing"); for (String s : list) { System.out.println("String: " + s); } }

Locating this inspection


Can be used to locate inspection in e.g. Qodana configuration files, where you can quickly enable or disable it, or adjust its settings.

Via Settings dialog

Path to the inspection settings via IntelliJ Platform IDE Settings dialog, when you need to adjust inspection settings directly from your IDE.

Settings or Preferences | Editor | Inspections | Java | Abstraction issues

Enable the Only weaken to an interface checkbox below to only report a problem when the type can be weakened to an interface type.

Enable the Do not suggest weakening variable declared as 'var' checkbox below to prevent reporting on local variables declared using the 'var' keyword (Java 10+)

Stop classes are intended to prevent weakening to classes lower than stop classes, even if it is possible. In some cases, this may improve readability.

Inspection options

Here you can find the description of settings available for the Type may be weakened inspection, and the reference of their default values.

Only weaken to an interface

Default: Selected

Do not suggest weakening variable declared as 'var'

Not selected

Stop classes



By default bundled with

IntelliJ IDEA 2024.1, Qodana for JVM 2024.1,

Can be installed with plugin

Java, 241.18072

Last modified: 18 June 2024