List<String> list = getNames();//this returns a list of names(String).
String[] names = (String[]) list.toArray(); // throws class cast exception.
なぜだか分からない?任意の解決策、説明をいただければ幸いです。
List<String> list = getNames();//this returns a list of names(String).
String[] names = (String[]) list.toArray(); // throws class cast exception.
なぜだか分からない?任意の解決策、説明をいただければ幸いです。
これは、パラメータなしが s のtoArray配列を生成するためObjectです。String次のように、出力配列をパラメーターとして受け取り、 s の配列を渡すオーバーロードを呼び出す必要があります。
String[] names = (String[]) list.toArray(new String[list.size()]);
Java 5 以降では、キャストを削除できます。
String[] names = list.toArray(new String[list.size()]);
のクラスからキャストしようとしていObject[]ます。クラス自体は type の配列ですObject。要素を新しい配列に追加して、1 つずつ個別にキャストする必要があります。
または、これを行うことで、すでに実装されているメソッドを使用できます。
list.toArray(new String[list.size()]);