@Uso de anotaciones anulables
Vi algún método en Java declarado como:
void foo(@Nullable Object obj)
{ ... }
¿ Cuál es el significado de @Nullable
aquí? ¿Significa que la entrada podría ser null
?
Sin la anotación, la entrada aún puede ser nula, así que supongo que no es solo eso.
Deja claro que el método acepta valores nulos y que si anula el método, también debería aceptar valores nulos.
También sirve como pista para analizadores de código como FindBugs . Por ejemplo, si dicho método elimina la referencia a su argumento sin verificar primero si es nulo, FindBugs emitirá una advertencia.
Esta anotación se usa comúnmente para eliminar NullPointerExceptions
. @Nullable
dice que este parámetro podría ser null
. Un buen ejemplo de este comportamiento lo podemos encontrar en Google Guice . En este marco de inyección de dependencias liviano, puede ver que esta dependencia podría ser null
. Si intentara pasar null
sin una anotación, el marco se negaría a hacer su trabajo.
Es más, @Nullable
podría usarse con @NotNull
anotaciones. Aquí podrás encontrar algunos consejos sobre cómo utilizarlos correctamente. La inspección de código en IntelliJ verifica las anotaciones y ayuda a depurar el código.