Java の総称型と Eclipse の警告と設計
以下のようなフィールドがあったとします。
private final List<String>[] list = new List[] { new ArrayList<String>(), };
このコードを Eclipse の標準設定で書くと、以下のような警告が出ます。
Type safety: The expression of type List needs unchecked conversion to conform to List
型安全じゃない、ということなんですね。
これを解決する方法はひとつしかありません*1。
@SuppressWarnings("unchecked") private final List<String>[] list = new List[] { new ArrayList<String>(), };
@SuppressWarnings("unchecked") を使うという消極的な方法ですが、これしかありません。
そもそも、以下のコードがコンパイルできないのが問題です。
private final List<String>[] list = new List<String>[1];
以下のようなエラーが出力されます。
Cannot create a generic array of List
ジェネリックな配列は生成できないという制限があるので、@SuppressWarnings("unchecked") を使いたくないのであれば、リストの配列はやめて、リストのリストにするなど、設計を見直す必要があります。
*1:間違ってたら指摘ください