Field injection seems like a tidy way to get your classes what they need to do their jobs, but it's really a ``++NullPointerException++`` waiting to happen unless all your class constructors are ``++private++``. That's because any class instances that are constructed by callers, rather than instantiated by a Dependency Injection framework compliant with the JSR-330 (Spring, Guice, ...), won't have the ability to perform the field injection.
Instead ``++@Inject++`` should be moved to the constructor and the fields required as constructor parameters.
This rule raises an issue when classes with non-``++private++`` constructors (including the default constructor) use field injection.