Listado completo de tutoriales
96 - Anotaciones Java predefinidas: @Override, @Deprecated y @SuppressWarnings |
Las anotaciones son una forma de agregar metadatos al código fuente de Java.
Las anotaciones se utilizan para:
Las anotaciones comienzan con el caracter @
Podemos crear anotaciones propias, pero ahora veremos algunas anotaciones predefinidas básicas:
@Override : Aplicamos esta anotación a un método para indicar que el mismo sobreescribe el método heredado de una clase o interfaz:
@Override public boolean equals(Object obj) { Persona persona = (Persona) obj; if (dni.equals(persona.dni)) return true; else return false; }
En el caso que nos equivoquemos en la firma del método a sobreescribir el entorno Eclipse puede identificar que hemos cometido un error:
Sin la anotación @Override el entorno de Eclispe intuye que queremos crear un método llamado 'EQUALS':
@Deprecated : Una anotación de este tipo indica que un método, atributo, clase etc. está obsoleto y no se recomienda su uso.
public class Persona { private String nombre; private int edad; public Persona(String nombre, int edad) { this.nombre = nombre; this.edad = edad; } @Deprecated public String retornarNombre() { return this.nombre; } public String getNombre() { return this.nombre; } public static void main(String[] ar) { Persona persona1 = new Persona("juan", 22); System.out.println(persona1.retornarNombre()); System.out.println(persona1.getNombre()); } }
Por ejemplo si queremos recuperar el nombre de la persona mediante el método 'getNombre' y en futuras versiones eliminar el método 'retornarNombre' podemos agregar la anotación @Deprecated al método obsoleto para que los programadores utilicen 'getNombre' en vez de 'retornarNombre'.
Los entornos de programación nos pueden mostrar información a partir del metadato que agrega la anotación:
El API de Java ha tenido una serie de cambios a lo largo del tiempo, si analizamos las miles de clases veremos que muchos métodos se desaconsejan su uso:
Como sabemos para visualizar un JFrame debemos llamar al método 'setVisible' en lugar de 'show':
import javax.swing.JFrame; public class Formulario extends JFrame{ public static void main(String[] args) { Formulario formulario1=new Formulario(); formulario1.setBounds(0, 0, 800, 600); formulario1.setVisible(true); } }
@SuppressWarnings : Evita que el entorno de desarrollo y compilador muestren advertencias sobre nuestro código:
import javax.swing.JFrame; @SuppressWarnings("serial") public class Formulario extends JFrame{ @SuppressWarnings("deprecation") public static void main(String[] args) { Formulario formulario1=new Formulario(); formulario1.setBounds(0, 0, 800, 600); formulario1.show(); } }
Previo a insertar la anotación:
Luego de agregar la anotación @SuppressWarnings desaparecen los Warnings:
Hay que tener en cuenta que primero tenemos que intentar evitar los warnings modificando el código fuente, pero en algunas situaciones por ejemplo proyectos antiguos puede ser una solución ocultar warnings.
Los Ides de Java (Eclipse, NetBeans, IntelliJ IDEA etc.) nos ayudan a generar en forma automática las anotaciones: