【发布时间】:2012-06-14 10:16:52
【问题描述】:
我天真地尝试这样做时遇到了一个简单的问题:
public void someMethod(){
int x = 0;
...
@SuppressWarnings({"rawtypes", "unchecked"})
x = ((Comparable)lhs).compareTo(rhs);
...
}
这是非法的,必须改写才能编译:
public void someMethod(){
...
@SuppressWarnings({"rawtypes", "unchecked"})
int x = ((Comparable)lhs).compareTo(rhs);
...
}
我已将问题追溯到ElementType:语句似乎不是有效的程序元素。这相当令人困惑——我认为语句类似于所有编程元素的超类型。
是否存在限制有效元素的理论或技术原因?
能否以不同的方式完成 - 即假设我可以用自己的班级取代
ElementType并掌握涟漪变化,我可以注释任何声明吗?
【问题讨论】:
-
完全不清楚这里的上下文是什么。您实际上没有指定注释并没有帮助。真的,你想做什么?
-
我试图做并且已经做的是抑制一些编译器警告。我现在要做的是了解我不能注释随机语句的更深层次的原因。我对编程语言的理论不是很擅长,但是这个看似随意的限制让我很感兴趣
-
所以请展示完整的上下文。您是要在方法中执行此操作,还是声明实例变量等?
-
@Jon 我试图在一个方法中做到这一点,注释一个局部变量。已相应地编辑了问题。
-
对。编辑使这一点更加清晰,尽管缩进也会有所帮助......
标签: java annotations element