私はこのコードをテストした:コレクションでInteger []にキャストする必要がありますが、コレクション<Object>ではどうしてですか?
Collection l = new ArrayList<Object>();
l.add(5);
l.add(2);
l.add(6);
Integer[] a=l.toArray(new Integer[0]);//this requires casting to Integer[]
も、このコードを見て:最初のキャストが必要ですが、2番目ない理由
Collection<Object> l = new ArrayList<Object>();
l.add(5);
l.add(2);
l.add(6);
Integer[] a=l.toArray(new Integer[0]);//this doesn't require casting to Integer[]
最初の質問は
のですか?
2番目の質問は、配列のサイズ
である私たちは、クラス名を渡すか、または他の方法ではありません、なぜ何の役割も重要ではありません?このようにAPIをする理由は何ですか?
でも問題はありません。これはコレクションにとって魅力的です。最初のコードではキャストが必要ですが、2番目のキャストでは不要です – Sarkhan
これは生のタイプを使用しているために発生します。生の型は使用しないでください。問題が解決しました。 – Radiodef
@Serkhan私の答えを受け入れてくれてありがとう。私はそれ以来、キャストを説明するためにそれを修正しました。 Radiodefは正しいですが、あなたは本当にこれについて心配する必要はありません。 –