java - sirve - No necesario @SuppressWarnings("no utilizado")
@suppresswarnings( unused)para que sirve (4)
Recibo una advertencia del compilador para la anotación @SuppressWarnings
en eclipse para el código:
@Override
public boolean doSomething(@SuppressWarnings("unused") String whatever) throws AnException {
throw new AnException("I''m still in bed and can''t do anything until I''ve had a shower!");
}
Parece un garabato amarillo debajo de la palabra "no usado" y al pasar el mouse consigo la información sobre herramientas No es necesario Unnecessary @SuppressWarnings("unused")
.
Creo que a otro desarrollador se le está pidiendo que coloque estas anotaciones en el eclipse y, básicamente, se me pide que las elimine. ¿Cómo puedo configurar eclipse para que me @SuppressWarnings
que coloque la anotación @SuppressWarnings
en lugar de que se queje de ello?
Si alguien quisiera comentar sobre las mejores prácticas aquí, entonces eso también sería bienvenido.
Alternativamente, si cree que es más correcto eliminar la anotación SuppressWarnings:
Ventana -> Preferencias -> Java -> Compilador -> Errores / Advertencias -> Código innecesario -> El valor del parámetro no se usa
y seleccione Ignorar en anular e implementar métodos
En el código de su pregunta, la @SuppressWarnings("unused")
es necesaria porque el método está anulando otro método de una superclase o implementando una interfaz. Incluso si en realidad no usa el parámetro que whatever
, es obligatorio declararlo, de lo contrario, la anotación @Override
producirá un error (estaría cambiando la firma del método anulado si eliminó el parámetro).
En algunas versiones anteriores de Eclipse, el código que se muestra no causaría una advertencia, pero en versiones más recientes lo hace. Creo que es una advertencia válida, y prefiero eliminar @SuppressWarnings("unused")
en este caso.
En mi código no hay herencia que defina los 3 métodos con @SuppressWarnings ("sin usar")
Este código proporciona ''@SuppressWarnings innecesario ("unused")'' en Eclipse Juno (última versión), pero si elimino @SuppressWarnings ("unused"), obtengo "Constructor / Method nunca se usa" en las advertencias de IntelliJ IDEA 11.1. 3
Los métodos no se utilizan directamente en el proyecto, solo los productos de terceros Jackson, JAXB y GSON, por lo que IntelliJ tiene razón, diría ...
public class EmailUnsendable extends SkjemaError {
private NestedCommand command; // Can''t be Command (interface) because of GSON!
@SuppressWarnings("unused") // Used by Jackson/JAXB/GSON
public EmailUnsendable() {
}
public EmailUnsendable(String referenceNumber, String stackTrace, NestedCommand command) {
super(referenceNumber, stackTrace);
this.command = command;
}
@SuppressWarnings("unused") // Used by Jackson/JAXB/GSON
public NestedCommand getCommand() {
return command;
}
@SuppressWarnings("unused") // Used by Jackson/JAXB/GSON
public void setCommand(NestedCommand command) {
this.command = command;
}
}
Creo que esto es un error en Eclipse.
Ir
Ventana → Preferencias → Java → Compilador → Errores / Advertencias → Anotaciones .
Y seleccione Ignorar para el token ''@ SuppressWarnings'' no utilizado .