Esta es mi primera pregunta aquí y soy bastante nuevo en Java, así que disculpe si es una pregunta tonta.
Estoy trabajando en "documentar" el comportamiento esperado de mi aplicación desde dentro usando JavaDocs y anotaciones, pero tengo curiosidad por saber si es apropiado o una buena práctica usar @NotNull en un método que NO DEBERÍA devolver nulo, pero puede ser debido al futuro error del desarrollador.
Gracias.
Esto realmente depende de las herramientas que esté utilizando. La anotación @NotNull en realidad no hace nada. En realidad, hay varias anotaciones @NotNull diferentes proporcionadas por diferentes bibliotecas. Ninguno de ellos hace nada por su cuenta, aparte de señalar la intención del programador.
Para hacer que la anotación haga algo, debe combinarla con una herramienta que procesará la anotación (ya sea en tiempo de compilación o en tiempo de ejecución) y aplicará alguna validación a su código o sus datos. Por ejemplo:
Incluso sin las herramientas, diría que sí, estas anotaciones pueden ser útiles para señalar la intención. Siempre puede eliminar la anotación si se vuelve falsa.
Parece que sería una buena idea en su caso que todos los contribuyentes al código base usen una herramienta, como IntelliJ IDEA, que verificará el cumplimiento de estas anotaciones en el momento de la compilación. Eso lo ayudará a evitar el tipo de error de desarrollador que describe.
Hasta donde yo sé, no existe un estándar obligatorio a nivel mundial para usar este tipo de anotaciones. Tiene sentido usarlos al escribir una API pública, pero esto es específico del proyecto.
En cualquier caso, siéntete libre de hacerlo en tu proyecto si ayuda con la claridad y legibilidad del código.
No es un antipatrón tener javadocs con anotaciones .
Además, si está considerando advertir al usuario de su método que no debería devolver un null , pero existe la posibilidad de que eso suceda (ya que no puede aplicarlo), es posible que desee consultar la clase Opcional .
sí, es una buena práctica usar @NotNull. La anotación @NotNull es, en realidad, un contrato explícito que declara lo siguiente:
Entonces, para mantenerlo simple, es una buena práctica.