ジェネリクス付きクラスの配列

java.util.ArrayList の配列を作るには,次のようなコードが必要.

// ジェネリクス付きクラスを再定義
static class StringArrayList extends ArrayList<String> {}

public static void main(String[] args){
  // これは NG.
  /*
  ArrayList<String>[] al = new ArrayList<String>[4];
  for(int i = 0; i < 4; i++){
     al[i] = new ArrayList<String>();
  }
  */

  // これは OK.
  StringArrayList[] sal = new StringArrayList[4];
  for(int i = 0; i < 4; i++){
      sal[i] = new StringArrayList();
  }
  sal[0].add("abc");
  sal[0].add("def");
  sal[1].add("ABC");
  sal[1].add("DEF");
}