Tengo una clase en la que inyecté un campo usando la anotación javax.inject.Inject
import javax.inject.Inject; public class Foo extends BaseFoo { @Inject private Bar bar; ... public void execute(){ if (bar == null) { //log failure message and return return; } //Do your work.. } ... } Mi pregunta es si en el ejemplo anterior, ¿se necesita o no una verificación null ? ¿y por qué?
La respuesta es, depende.
Si cree que hay escenarios válidos, donde el proceso de inyección no inyectará nulo , entonces necesita esa verificación. Si cree que eso nunca debería suceder, entonces probablemente termine con un NPE en tiempo de ejecución; y luego otra vez; tienes que averiguar por ti mismo si ese comportamiento es "apropiado" en tu contexto (y qué/cómo lidiar con él entonces).
Pero preferiría esforzarme por hacer que ese campo sea definitivo y poner la anotación en su constructor; y luego puede poner una Objects.requireNonNull() en el argumento entrante; y luego está seguro de que cualquier objeto Foo es nulo .