Java ジェネリック以前Collection.toArray()
は、開発者が期待する配列の型を知る方法がありませんでした (特に空のコレクションの場合)。私が理解しているように、これがイディオムの背後にある主な理論的根拠でしたcollection.toArray(new E[0])
。
ジェネリックを使用するとCollection<E>.toArray()
、インスタンスE
および/またはその特殊化でいっぱいの配列のみを返すことができます。Object[]
戻り値の型がまだ asではなくas であるのはなぜだろうかE[]
。E[]
私の意見では、代わりにを返すことは、Object[]
既存のコードを壊すべきではありません。
参照:Collection.toArray()
およびCollection.toArray(T[])
関連トピックjava: (String[])List.toArray() は ClassCastException を与える