docs/bugpattern/OverridesJavaxInjectableMethod.md
When classes declare that they have an @javax.inject.Injected method,
dependency injection tools must call those methods after first calling any
@javax.inject.Inject constructor, and performing any field injection. These
methods are part of the initialization contract for the object.
When subclasses override methods annotated with @javax.inject.Inject and
don't also annotate themselves with @javax.inject.Inject, the injector will
not call those methods as part of the subclass's initialization. This may
unexpectedly cause assumptions taken in the superclass (e.g.: this
post-initialization routine is finished, meaning that I can safely use this
field) to no longer hold.
This compile error is intended to prevent this unintentional breaking of assumptions. Possible resolutions to this error include:
@Inject the overridden method, calling the super method to maintain the
initialization contract.final to avoid subclasses unintentionally
masking the injected method.protected method for
this subclass to use.