【发布时间】:2016-09-07 09:33:19
【问题描述】:
我曾经使用过@SuppressWarnings("unchecked"),比如:
class SomeClass {
public static void main(String [] args) {
Vector v = new Vector();
@SuppressWarnings("unchecked")
v.addElement(new Integer(1_000_000));
// ...
在使用 javac 8.0 版本编译时,出现以下错误:
error: <identifier> expected
v.addElement(new Integer(1_000_000));
插入符号 (^) 指向 addElement 方法的左括号,还有一条错误消息抱怨缺少分号 (;)。第二条消息在addElement 的右括号附近显示插入符号。
但是,当我将@SuppressWarnings("unchecked") 移到class SomeClass{ 上方时,如下所示:
@SuppressWarnings("unchecked")
class SomeClass {
两条错误消息都自动消失了。这让我很困惑。 @SuppressWarnings("unchecked")的定位有那么关键吗?
【问题讨论】:
-
@SuppressWarnings习惯于很好地抑制任何抛出的警告。 -
是的,@SuppressWarnings 注释很重要。没有它,编译器会发出警告,关于不安全的操作。你可以检查这个:codejava.net/java-core/the-java-language/…