Ciao ragazzi. Ho un piccolo problemino che mi affligge e che mi "sconvolge".
Osservate questo codice:
codice:
StringTokenizer st = new StringTokenizer(miaStringa, ":", true);
Vector v = new Vector();
// Riempio il vettore con tutti i token della stringa
while (st.hasMoreTokens()) {
v.add(st.nextToken());
}
// Creo un array con tutti i token della stringa
System.out.println(v.elementAt(0).getClass().getName());
String [] arrayToken = (String []) v.toArray();
Io so con certezza che la stringa 'miaStringa' non è vuota, non è null e contiene sicuramente del testo. Quindi so con certezza che il vettore conterrà almeno un elemento (Oggetto di tipo String).
Ebbene: mi viene riportato un errore nell'ultima riga del codice che ho riportato. L'errore è un ClassCastException. :master:
Forse oggi ho la testa un po' fra le nuvole, ma proprio non capisco perchè mi venga sollevata questa eccezione in esecuzione. Da notare che la riga precedente mi restituisce correttamente il seguente output:
Di per sé non è un problema, perchè posso comunque costruire il mio array in questo modo
codice:
String [] arrayToken = new String[v.size()];
for (int i=0; i<v.size(); i++) {
arrayToken = (String) v.elementAt(i);
}
ma quello che non capisco è perchè venga sollevata quell'eccezione. Il vettore contiene ALMENO una stringa. Gli chiedo di ritornarmi un Object[] che casto a String[] e mi va in errore... PERCHE'???
Grazie a chiunque mi faccia tornare con i piedi per terra.
Ciao.