2016-07-24 47 views
-5

Eclipse是警告我,局部变量randInt可能不会被初始化(它是)。所以我添加的第一行:奇怪的结果来自“@SuppressWarnings”

@SuppressWarnings("all") 
return randInt; 

警告走了,但我在第一行获得两个新的错误: 语法错误:插入“枚举标识符”完成EnumHeaderName,并 语法错误:插入“EnumBody”来完成BlockStatement

究竟是什么?令人惊讶地很难找到有关@SuppressWarnings的信息。有没有比使用“全部”更精确的方式来摆脱这个特定的警告?

最小的,完整的,可核查的例子:

public class SuppressTest { 
    public int cut() { 
     int randInt = 0; 
     @SuppressWarnings("all") 
     return randInt; 
    } 
} 
+2

你可以发布[mcve]吗? – Tunaki

+0

等一下,我看到这个方法与布尔实例变量“cut”具有相同的名称(它在@SuppressWarnings之前立即设置为true)。这在Java中是合法的吗?这可能是问题吗?代码运行正常。 – user3238181

回答

1

您不能插入一个return语句@SuppresWarnings。在Java 8中,只能注释类,方法/构造函数,字段,参数和(在java中为new 8)局部变量。

所以在你的情况下,java不能解析你写的东西。在方法级别移动@SuppressWarnings

+0

谢谢。我的问题的第2部分:是否存在针对“变量可能未初始化”消息的特定类型的警告? – user3238181