Constructor assigns value to field defined in superclass
Reports assignment to, or modification of fields that are declared in a superclass from within a subclass constructor.
It is considered preferable to initialize the fields of a superclass in its own constructor and delegate to that constructor in a subclass. This will also allow declaring a field final
if it isn't changed after the construction.
Example:
class Super {
int x;
}
class Sub extends Super {
Sub(int _x) {
// Warning: x is declared in a superclass
x = _x;
}
}
To avoid the problem, declare a superclass constructor:
class Super {
final int x;
Super(int _x) {
x = _x;
}
}
class Sub extends Super {
Sub(int _x) {
super(_x);
}
}
Locating this inspection
- 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.
AssignmentToSuperclassField- 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.
Availability
- By default bundled with
- Can be installed with plugin
Java, 241.18072
Last modified: 18 June 2024