Just of my head two further suggestions:
1.) If a field is not null than do not inject anything. This way custom
injections could be done
Fields are always null because they are not initialized yet by the sub class
(when having a super class that does the injections)