ホームページ  >  記事  >  Java  >  `List.toArray()` を `List` と一緒に使用すると `ClassCastException` がスローされるのはなぜですか?

`List.toArray()` を `List` と一緒に使用すると `ClassCastException` がスローされるのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-30 19:15:03361ブラウズ

Why does `List.toArray()` throw a `ClassCastException` when used with a `List`?

Java: (String[])List.toArray() が文字列のリストで List.toArray() を使用すると ClassCastException

が発生する、文字列の配列を受け取ることを期待するかもしれません。ただし、多くの場合、ClassCastException が発生する可能性があります。

これは、toArray() が String[] ではなく Object[] を返すために発生します。これは、ジェネリックが実行時に使用できないためです。リストが List として作成されると、リストとして保存されます。実行時には、リスト内のオブジェクトのタイプに関する情報はありません。したがって、toArray() は Object[] を返す必要があります。

文字列のリストから String[] を取得するには、toArray(new String[v2.size()]) を使用します。これにより、適切なサイズの String[] が割り当てられ、リストの文字列が設定されます。

以上が`List.toArray()` を `List` と一緒に使用すると `ClassCastException` がスローされるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。