다음 코드 (Android에서 실행)는 항상 세 번째 줄에 ClassCastException을 제공합니다.
final String[] v1 = i18nCategory.translation.get(id);
final ArrayList<String> v2 = new ArrayList<String>(Arrays.asList(v1));
String[] v3 = (String[])v2.toArray();
v2가 Object [0]이고 문자열이있을 때도 발생합니다. 이유는 무엇입니까?
Covariance 및 Contravariance에 대해 읽을 수 있습니다.- en.wikipedia.org
—
wiki
T가 인스턴스화를위한 팩토리 메소드와의 인터페이스 인 경우는 어떻습니까?
—
sebaj 2011 년
@LaceCard-이것은 공분산 / 반 분산과 매우 간접적으로 만 관련이 있습니다. 실제 문제는 이것이
—
Stephen C
toArray()
메서드 의 지정된 동작의 직접적인 결과라는 것입니다.