implementsと extendsのjava.util.ArrayList
実装。しかし、Java ドキュメントでは、AbstractList がすでに List を実装していることがわかります。それでは、List を実装して AbstractList を拡張するのは冗長ではありませんか?
私の2番目の質問
次のコードを見てください:List
AbstractList
String str = "1,2,3,4,5,6,7,8,9,10";
String[] stra = str.split(",");
List<String> a = Arrays.asList(stra);
Arrays クラスのArrays.asList()
メソッドには、ArrayList の独自の実装が含まれています。しかし、これは AbstractList を拡張するだけで、List を実装していません。しかし、上記のコードはコンパイルされます。
しかし、コードが次のように変更された場合
String str = "1,2,3,4,5,6,7,8,9,10";
String[] stra = str.split(",");
java.util.ArrayList<String> a = Arrays.asList(stra);
エラーが表示されます:cannot convert form List<String> to ArrayList<String>
この背後にある理由は何ですか?
EDIT
Arrays.asList()
は ArrayList の独自の実装を返します。これをチェックしてください。