¿Que son las anotaciones?
Hola a todos los miembros de la comunidad
Tengo un problema con el concepto "anotaciones" en Java, ¿hay alguien que nos pueda ayudar con este tema?.
Saludos
- Inicie sesión o regístrese para enviar comentarios
Hola a todos los miembros de la comunidad
Tengo un problema con el concepto "anotaciones" en Java, ¿hay alguien que nos pueda ayudar con este tema?.
Saludos
Son [marcas especiales][1]
Son [marcas especiales][1] que se le ponen a clases, métodos y atributos para agregarles funcionalidad. Estas pueden ser leídas en tiempo de compilación, o en tiempo de ejecución.
Durante la compilación
Por ejemplo la anotación @Override
public void some() {
}
}
class B extend A {
@Override
public void some() {
}
}
Aquí es usada por el compilador para informarle que el método "some" de la clase B está sobreescribiendo el método "some" de la clase A. Si por error escribieras "same" ( con 'a' en vez de 'o' )
@Override
public void same() {
}
El compilador te diría que no hay un método con ese nombre. Esto te puede ayudar a darte cuenta rápidamente de cosas como estas en vez de tener que pasar un rato pensando porque tu programa no funciona bien.
Durante la ejecución.
Por ejemplo la biblioteca Jackson que sirve para leer json y crear objetos java puede utilizar la anotación @JsonProperty para saber que nombre tiene ese atributo en el json
@JsonProperty("last_name")
public String lastName;
}
En este ejemplo la propiedad json llamada "last_name" sería mapeada al atributo "lastName".
Hay muchos más ejemplos y se usan ampliamente para darle más funcionalidad a tus clases. Por ejemplo para crear prueba JUnit utiliza la anotación @Test en Hibernate se usan para mapear clases a tablas de bases de datos, en Spring para configurar dependencias, etc. etc.
El proyecto [Lombok][2] le da usos muy interesantes para hacer código java más sencillo
Espero que esto te ayude.
[1]: https://docs.oracle.com/javase/tutorial/java/annotations/
[2]: https://projectlombok.org/