0

なぜうまくいかないのでしょうか?

List<String> lista = new ArrayList<>();
        lista.add("Lol");
        lista.add("ball");
        String [] array = (String[])lista.toArray();

リストに含まれるオブジェクトを返す目的で別のメソッドがあることは承知RunTimeException (ClassCastException)していますが、舞台裏で何が起こっているのでしょうか? つまり、実際には文字列の配列であるオブジェクトの配列を文字列の配列にキャストしています。したがって、コンパイルする必要がありますが、コンパイルしません。前もって感謝します。

4

6 に答える 6

2

List.toArray()は、Object[]が eraseであるため、 を 返します。実行時に、リストに String オブジェクトがあるかどうかはわかりません。そこから、そのエラーがどこから来ているかを確認できます。

Object[]にキャストすることはできませんString[]

于 2013-08-28T08:12:06.760 に答える
0

List lista = 新しい ArrayList<>(); ---> リスト lista = new ArrayList();

于 2013-08-28T08:17:55.567 に答える