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.