例えば、以下のコードをコンパイルした場合、ワーニングとして「Hoge.javaの操作は、未チェックまたは安全ではありません。」が出力される。
public class Hoge { public static void main(String[] args) { Collectioncollection = hoge("1", "2"); } public static Collection hoge(T... elements) { return Arrays.asList(elements); } }
このワーニングを抑制するために、「SafeVarargs」を対象のメソッドhogeに追加をしてあげるとよい。
ちなみに、このアノテーションはstaticかfainalなメソッドにしか設定できないので、非finalなインスタンスメソッドに設定すると、以下のようなコンパイルエラーが発生する。
エラー: SafeVarargs注釈が無効です。インスタンス・メソッドhoge(T...)はfinalではありません。 Tが型変数の場合: メソッド hoge(T...)で宣言されているT extends Object