Hay tres tipos de anotaciones que se predefinen por la especificación misma del lenguaje: @Deprecated, @Override, y @SuppressWarnings.
@Deprecated: Indica que el elemento marcado es obsoleto y ya no debería usarse. El compilador genera una advertencia siempre que un programa usa un método, clase o campo con la anotación @Deprecated. Cuando un elemento es obsoleto también debería documentarse usando la etiqueta @deprecated de Javadoc (es decir, usar anotación y javadoc al mismo tiempo).
/**
* Método que sirve para ...
* @deprecated Explicación de por qué es obsoleto
*/
@Deprecated
static void deprecatedMethod() { }
@Override: Informa al compilador que el elemento está pensado para sobreescribir a un elemento declarado en una superclase. Esto ayuda a prevenir errores. Si un método está marcado con @Override y no se sobreescribe correctamente el compilador genera un error.
// marcar un método como un método de superclase
// que ha sido sobreescrito
@Override
int overriddenMethod() { }
@SuppressWarnings: Le dice al compilador que suprima advertencias.
En el ejemplo de abajo, se usa un método obsoleto y el compilador normalmente genera una advertencia. En este caso, sin embargo, la anotación causa que la advertencia se suprima.
// usar un método obsoleto y decirle
// al compilador que no genere una advertencia
@SuppressWarnings("deprecation")
void useDeprecatedMethod() {
objectOne.deprecatedMethod(); //advertencia de desprciación - suprimida
}
Y cuando queremos eliminar las advertencias para tipos no verificados, en una clase:
@SuppressWarnings("unchecked")
public class classA{...}
En un método:
@SuppressWarnings("unchecked")
private void method1(){...}
Y en un campo:
@SuppressWarnings("unchecked")
private List list1;
Cada advertencia del compilador pertenece a una categoría. La Especificación del Lenguaje Java lista dos categorías: “deprecation” y “unchecked.” La advertencia “unchecked” puede ocurrir cuando se interfacea con código de legado escrito antes de la llegada de las genéricas (discutidas en la lección “Genéricas”). Para suprimir más de una categoría de advertencias, use la siguiente sintaxis:
@SuppressWarnings({"unchecked", "deprecation"})
La información se tomó de:
http://redir.no-ip.org/tutorial/java/javaOO/annotations.html
http://www.mkyong.com/java/how-to-suppress-unchecked-warnings-java/

