次のコードについて正しい選択肢を選んでください。
@SafeVarargs
void method(List<String>... str) {
System.out.println(str.length);
}
- このメソッドで可変長引数の警告が抑制される
- このメソッド及び呼び出し先で警告が抑制される
- このメソッドは引数なしで呼び出すことはできない
- コンパイルエラー
- 実行時例外
- このアノテーションはメソッドのみ適用できる
解答
4. コンパイルエラー-
@SafeVarargs
アノテーションはprivate
,final
,static
のうち、1つ以上修飾されたメソッドにしか付与できません。 - コンストラクタとメソッドに使用できます。
- 引数が可変ではなく固定長引数の場合もコンパイルエラーです。
- 呼び出し元の警告も抑制されます
- 可変長引数は引数なしでも呼び出し可能です(例:
public static void main(String[] args)
)
Docment
SafeVarargs