El siguiente código (ejecutar en Android) siempre me da una ClassCastException en la 3ª línea:java: (String []) List.toArray() da ClassCastException
final String[] v1 = i18nCategory.translation.get(id);
final ArrayList<String> v2 = new ArrayList<String>(Arrays.asList(v1));
String[] v3 = (String[])v2.toArray();
También sucede cuando v2 es objeto [ 0] y también cuando hay cadenas en él. ¿Alguna idea de por qué?
Es posible que desee leer sobre Covarianza y contravarianza - http://en.wikipedia.org/wiki/Covariance_and_contravariance_%28computer_science%29#Java – Hut8
Qué pasa con el caso en el que T es una interfaz con un método de fábrica para creación de instancias. – sebaj
@LaceCard: esto solo está relacionado muy indirectamente con la covarianza/contravarianza. El verdadero problema es que esto es una consecuencia directa del comportamiento especificado del método 'toArray()'. –