La idea es dejar algunos conceptos básicos para iniciar en el desarrollo Java y Android. Si ya hiciste algunas aplicaciones, seguro ya te presentaron a las anotaciones de Java. Vamos a ponerlo fácil.

Una anotación sirve para dar información al compilador o a las herramientas de desarrollo para hacer algo.

Ese "algo" que decimos puede ser, por ejemplo para que el compilador detecte errores o advertencias, para que las herramientas de desarrollo puedan generar código, archivos, etc.

¿Cómo se ven?

Una anotación siempre va delante de una clase, método, o declaración y se ve así:

@UnaAnotacion

Con el signo de @ adelante del nombre y pueden tener elementos como parámetros con valor para más otorgar más información, por ejemplo:

@Autor(nombre = "Daniel Alvarez", fecha = "27/08/2017")
public class MiClase() {

}

Se pueden poner múltiples anotaciones el mismo tipo o distinto y elementos como valor directo.

@Autor(nombre = "Daniel Alvarez", fecha = "27/08/2017")
@Autor(nombre = "Maria Rivas", fecha = "18/08/2017")
@Deprecated
@OtraAnotacion("valor")
public class MiClase() {

}

¿Cuáles son las más comunes?

En Java tenemos algunas anotaciones comunes que podemos utilizar desde ya, en nuestro código.

Si vienes programando en Java anteriormente, seguramente te topaste con @Deprecated, @Override, @SuppressWarning u otros conocidos.

Conocemos algunas anotaciones y las explicamos rápidamente que pasa si las usamos.

Deprecated

@Deprecated para aquellos métodos obsoletos. Imagina que hay varios programadores trabajando en el mismo proyecto, tu hiciste un método para solucionar algo pero luego se te ocurre otra mejor manera de hacerlo. Para eso no borras el método anterior porque otros lo siguen usando, pero si quieres que ya no lo usen en futuro ese método porque hay otro mejor, entonces simplemente adicionas la anotación @Deprecated a tu anterior método y listo.

Tus otros programadores verán el mensaje de esta obsoleto (estará tachado su uso) y el IDE (o editor) les recomendará cambiar.

Ya sabes que significa cuando el método aparece tachado

Ya sabes que significa cuando el método aparece tachado

Override

@Override le informa al compilador que sobreescribirá el método de la clase padre. Esto es aplicable cuando existe herencia de clases, si tu clase tiene un extends pueden sobreescribir su código poniendo en tu método que esta en la clase hijo con esta anotación. Si eres Android Developer, lo siguiente te es familiar, si no lo eres es fácil de entender que es una clase que hereda de otra con un método llamado onCreate().

Trozo de código básico de una Activity en Android

En este trozo de código podemos ver que con la anotación @Override estamos sobre-escribiendo el método onCreate() que tiene su clase padre que es AppCompatActivity.

Pero como sabemos podemos hacer que también suceda lo que el padre tiene en ese método, usando super y el método.

SuppressWarnings

@SuppressWarnings como su nombre lo dice, le dice al compilador que elimine las advertencias que se pueden mostrar, es decir, ya no te mostrará advertencias que pueda generar ese método. Útil cuando ya no te interesan algunas advertencias que conoces.

Otras anotaciones populares

  • @Nullable para decir que esa variable o el retorno de un método puede ser null.
  • @NotNull para decir que esa variable, o el retorno de un método no puede ser null.

Debo aclarar que esto no cambiará el comportamiento de la aplicación en la ejecución pero si queda más claro para ti, qué puede ser o no ser nulo, y no solo para ti, sino también para el IDE, editor y algunas herramientas de desarrollo, para testing, etc.

De cómo crear tus propias anotaciones será en otra ocasión, espero te haya servido esta introducción rápida.