Beim Versuch, eine ArrayList
<code class="java">final String[] v1 = i18nCategory.translation.get(id); final ArrayList<String> v2 = new ArrayList<>(Arrays.asList(v1)); String[] v3 = (String[]) v2.toArray();</code>
Dies geschieht unabhängig vom Inhalt von v2 (sogar einem leeren Array).
Dieser Fehler tritt auf weil toArray() ein Object[] zurückgibt, kein String[]. Generika sind nur zur Kompilierungszeit verfügbar, sodass die Java Virtual Machine (JVM) nicht bestimmen kann, welcher Array-Typ erstellt werden soll. Daher wird standardmäßig Object[] verwendet, das nicht in String[] umgewandelt werden kann.
Um dieses Problem zu beheben, geben Sie den Array-Typ explizit mit toArray(T[] a) an. -Methode und geben Sie den gewünschten Array-Typ als Parameter an. Dieser Code erstellt beispielsweise korrekt einen String[]:
<code class="java">String[] v3 = v2.toArray(new String[v2.size()]);</code>
Diese Methode stellt sicher, dass das zurückgegebene Array den richtigen Typ und die richtige Größe hat.
Das obige ist der detaillierte Inhalt vonWarum löst „List.toArray()“ in Android beim Umwandeln in „String[]“ eine „ClassCastException“ aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!