PDA

View Full Version : [Java] Domana idiota su generics


m0linas
08-07-2010, 18:40
Allora, sto sviluppando una piccola applicazione per un esame all'università, che prevede la realizzazione del gioco di carte memory in java, umano vs cpu.
Per memorizzare l'ordine delle carte generato a caso, volevo usare un ArrayList, da cui il giocatore cpu possa rimuovere le carte già uscite per escluderle dalle sue scelte.
Dato che mi scoccia fare sempre il cast, e che la prof ha espressamente dichiarato come argomento del corso i generics, ho definito l'arraylist come segue:

ArrayList<Carta> carteArray = new ArrayList<Carta>();


dove Carta è la classe che definisce come sono fatte le carte del mio memory. Quando compilo però mi esce questo errore:

Command line: "C:\j2sdk1.4.2_17\bin\javac.exe" -deprecation -g -classpath C:\DOCUME~1\Nicola\DOCUME~1\MODELW~1\MYPROJ~1\prove "C:\Documents and Settings\Nicola\Documenti\Modelworks\MyProjects\prove\MyMemory.java"
@MyProjects\prove\MyMemory.java:63: <identifier> expected
ArrayList<Carta> arraylist = new ArrayList<Carta>();
^

Lo stesso errore mi esce anche se metto String o int al posto di Carta....immagino che sia un errore del cavolo, ma non mi permette di andare avanti con la stesura....qualcuno mi potrebbe gentilmente illuminare?
Grazie in anticipo :muro:

Rsk
08-07-2010, 18:43
Allora, sto sviluppando una piccola applicazione per un esame all'università, che prevede la realizzazione del gioco di carte memory in java, umano vs cpu.
Per memorizzare l'ordine delle carte generato a caso, volevo usare un ArrayList, da cui il giocatore cpu possa rimuovere le carte già uscite per escluderle dalle sue scelte.
Dato che mi scoccia fare sempre il cast, e che la prof ha espressamente dichiarato come argomento del corso i generics, ho definito l'arraylist come segue:

ArrayList<Carta> carteArray = new ArrayList<Carta>();


dove Carta è la classe che definisce come sono fatte le carte del mio memory. Quando compilo però mi esce questo errore:

Command line: "C:\j2sdk1.4.2_17\bin\javac.exe" -deprecation -g -classpath C:\DOCUME~1\Nicola\DOCUME~1\MODELW~1\MYPROJ~1\prove "C:\Documents and Settings\Nicola\Documenti\Modelworks\MyProjects\prove\MyMemory.java"
@MyProjects\prove\MyMemory.java:63: <identifier> expected
ArrayList<Carta> arraylist = new ArrayList<Carta>();
^

Lo stesso errore mi esce anche se metto String o int al posto di Carta....immagino che sia un errore del cavolo, ma non mi permette di andare avanti con la stesura....qualcuno mi potrebbe gentilmente illuminare?
Grazie in anticipo :muro:

Aggiorna la jdk.. i generics sono stati implementati dalla 1.5, tu hai la 1.4

m0linas
08-07-2010, 19:01
Aggiorna la jdk.. i generics sono stati implementati dalla 1.5, tu hai la 1.4

oddio mio.....grazie, scusate il disturbo :fagiano: :doh:

fero86
08-07-2010, 19:51
una ulteriore precisazione:

Lo stesso errore mi esce anche se metto String o int al posto di Carta.... int non ce lo potresti comunque mettere, i genercis possono essere parametrizzati solo con classi, non con tipi nativi. semmai ci puoi mettere Integer.