@Uso de anotaciones anulables

Resuelto user1508893 asked hace 11 años • 4 respuestas

Vi algún método en Java declarado como:

void foo(@Nullable Object obj)
{ ... }

¿ Cuál es el significado de @Nullableaquí? ¿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.

user1508893 avatar Dec 29 '12 04:12 user1508893
Aceptado

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.

JB Nizet avatar Dec 28 '2012 21:12 JB Nizet

Esta anotación se usa comúnmente para eliminar NullPointerExceptions. @Nullabledice 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 nullsin una anotación, el marco se negaría a hacer su trabajo.

Es más, @Nullablepodría usarse con @NotNullanotaciones. 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.

Adam Sznajder avatar Dec 28 '2012 21:12 Adam Sznajder