Back to Intellij Community

OverridableMethodCallDuringObjectConstruction

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

2025.3-rc-2969 B
Original Source

Reports calls to overridable methods of the current class during object construction.

A method is called during object construction if it is inside a:

  • Constructor
  • Non-static instance initializer
  • Non-static field initializer
  • clone() method
  • readObject() method
  • readObjectNoData() method

Methods are overridable if they are not declared as final, static, or private. Package-local methods are considered safe, even though they are overridable. Such calls may result in subtle bugs, as object initialization may happen before the method call.

Example:

class Parent {
    void someMethod() { }
  }

  class Child extends Parent {
    Child() {
      someMethod();
    }
  }

This inspection shares the functionality with the following inspections:

  • Abstract method called during object construction
  • Overridden method called during object construction

Only one inspection should be enabled at once to prevent warning duplication.