me encontré con un tema sencillo, ingenuamente, tratando de hacer esto:¿Por qué no se pueden anotar todas las declaraciones en Java?
public void someMethod(){
int x = 0;
...
@SuppressWarnings({"rawtypes", "unchecked"})
x = ((Comparable)lhs).compareTo(rhs);
...
}
Esto es ilegal y tiene que ser reformulado para compilar:
public void someMethod(){
...
@SuppressWarnings({"rawtypes", "unchecked"})
int x = ((Comparable)lhs).compareTo(rhs);
...
}
me han rastreado el problema hasta ElementType: una declaración no parece ser un elemento de programa válido Esto es bastante confuso: pensé que una declaración es algo así como un supertipo de todos los elementos de programación.
¿Existe un motivo teórico o técnico para la restricción de los elementos válidos?
Podría hacerse de otra manera, es decir, supongo que podría suplantar a
ElementType
con mi propia clase y dominar los cambios de ondulación, ¿podría anotar alguna afirmación?
No está del todo claro lo que el contexto está aquí. No ayuda que no hayas especificado la anotación. Realmente, ¿qué estás tratando de hacer? –
Lo que estaba tratando de hacer y lo que hice fue suprimir algunas advertencias del compilador. Lo que trato de hacer ahora es comprender la razón más profunda por la que no puedo anotar declaraciones aleatorias. No soy muy bueno en la teoría de los lenguajes de programación, pero esta restricción aparentemente arbitraria me intrigó – kostja
Por lo tanto, muestre el * contexto completo *. ¿Estás tratando de hacer esto dentro de un método, o declarando una variable de instancia, etc.? –