2016-07-24 88 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