PDA

Visualizza la versione completa : Java - Casting


maximum
13-05-2004, 16:33
Devo scorrere la collezione e recuperare ad ogni giro l'idValutati



Iterator iterIdValutati = collIdValutati.iterator();

while (iterIdValutati.hasNext()){

System.out.println("Max Valutatore --> Dentro il while");

//int IdValutati = Integer.parseInt(iterIdValutati.next().toString()) ;

int IdValutati = (new Integer((String)iterIdValutati.next())).intValue() ;

}

La prima soluzione (quella commentata) mi va in NumberFormatException; la seconda il ClassCastException.

Come posso ovviare??? :master:

LeleFT
13-05-2004, 16:39
Cosa restituisce questa cosa?


iterIdValutati.next()


Ciao. :ciauz:

maximum
13-05-2004, 16:41
Che vuoi dire? :dottò:

LeleFT
13-05-2004, 16:48
Il metodo next() dell'interfaccia Iterator restituisce un Object. Ora... soltanto tu puoi sapere che oggetto sia collIdValutati. Se ha il metodo iterator() dovrebbe essere una Collection... che oggetti contiene questa Collection? Intendo dire che tipo di dati contiene questa Collection?


Ciao. :ciauz:

maximum
13-05-2004, 17:01
Ottengo una collezione di numerici...
Ecco perchè il while di sopra...solo che devo ogni volta estrapolare l'ID e usarlo per eseguire delle interrogazioni.

LeleFT
13-05-2004, 17:30
Calma... continuo a non capire... Con questa istruzione:


Object oggetto = iterIdValutati.next();

Cosa ho salvato dentro alla variabile oggetto? :confused:
Di che tipo è la variabile oggetto (a parte Object, perchè non so che tipo di oggetto sia)?


Ciao. :ciauz:

maximum
14-05-2004, 10:14
Ho apportato qualche modifica:


for (Iterator itr = collIdValutati.iterator(); itr.hasNext(); ) {
System.out.println("Max Valutatore --> dentro al for");

String idStr = (String)itr.next();

System.out.println("Max Valutatore --> dopo il casting");

int IdValutati = (new Integer(idStr)).intValue();

}

Continua a restituire "java.lang.ClassCastException" alla riga:


String idStr = (String)itr.next();

:dhò:

Loading