(String[])List.toArray()의 ClassCastException 이해
제공한 코드 조각에서 캐스팅을 시도할 때 ClassCastException이 발생합니다. 문자열의 ArrayList를 문자열 배열로 변환합니다. 이는 Java의 toArray() 메소드가 String[] 배열과 호환되지 않는 Object[] 배열을 반환하기 때문에 발생합니다.
이 문제를 해결하려면 원하는 배열 유형을 지정해야 합니다. toArray()를 사용할 때 생성됩니다. 이 경우에 사용할 올바른 방법은 toArray(new String[v2.size()])입니다. 이 메소드는 적절한 크기의 String[] 배열을 할당하고 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(new String[v2.size()]);</code>
이 업데이트된 코드에서는 다음을 명시적으로 지정합니다. ClassCastException 없이 캐스팅 작업이 성공하도록 문자열 배열을 생성하려고 합니다.
위 내용은 제공된 텍스트에 맞는 몇 가지 영어 질문 기반 제목은 다음과 같습니다. * `String[]`으로 캐스팅할 때 `List.toArray()`에서 `ClassCastException`이 발생하는 이유는 무엇입니까? * `ArrayList`를 안전하게 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!