2016-07-24 18 views
-5

Eclipseは、ローカル変数randIntが初期化されていない可能性があることを警告していました。だから私は、最初の行を追加:警告は去っていきました"@SuppressWarnings"の奇妙な結果

@SuppressWarnings("all") 
return randInt; 

を、私は最初の行にある2つの新たなエラーを取得しています: 構文エラー:EnumHeaderNameを完了するために、「列挙型識別子」を挿入し、 構文エラー: "EnumBody"を挿入してBlockStatementを完成させる

何が地球上で? @SuppressWarningsに関する情報を見つけるのは驚くほど困難です。 「all」を使用するよりも、この特定の警告を取り除く正確な方法がありますか?

ミニマル、完全、検証可能な例:

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 8の新機能)ローカル変数に注釈を付けることができます。

あなたのケースでは、javaはあなたが書いたものを解析できません。メソッドレベルで@SuppressWarningsを移動します。

+0

ありがとうございます。私の質問の第2部: "変数が初期化されていない可能性があります"メッセージをターゲットとする特定の種類の警告がありますか? – user3238181