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:

  • Brindar información al IDE (por ejemplo Eclipse) para detectar por ejemplo errores previos a su compilación.
  • Acceder a información de los metadatos en tiempo de ejecución del programa.

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:

    @Override java

    Sin la anotación @Override el entorno de Eclispe intuye que queremos crear un método llamado 'EQUALS': @Override java

  • @Deprecated : Una anotación de este tipo indica que un método, atributo, clase etc. está obsoleto y no se recomienda su uso.

    Clase: Persona

    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:

    @Deprecated java

    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:

    @Deprecated java

    Como sabemos para visualizar un JFrame debemos llamar al método 'setVisible' en lugar de 'show':

    Clase: Formulario

    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:

    @SuppressWarnings java

    Luego de agregar la anotación @SuppressWarnings desaparecen los Warnings:

    @SuppressWarnings java
  • 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:

    @SuppressWarnings java

Retornar