View Full Version : [JAVA] domanda veloce parametrizzare hashtable
Wilcomir
09-12-2006, 09:56
ciao a tutti, ho una domanda facile.
allora io ho una classe che estende hashtable, e nell'extends parametrizzo la chiave e l'oggetto, cioè:
public class VillagesArray extends Hashtable <int, TravianVillage> {
}
solo che mr eclipse sottolinea int e da l'errore:
Syntax error on token "int", Dimensions expected after this token
se ci metto Integer non da nessun errore ma... io preferivo usare int, visto che parlo di una tabella da 20 30mila oggetti che hanno ciascuno una decina di campi...
ciao!
allora io ho una classe che estende hashtable, e nell'extends parametrizzo la chiave e l'oggetto, cioè:
public class VillagesArray extends Hashtable <int, TravianVillage> {
}
solo che mr eclipse sottolinea int e da l'errore:
Syntax error on token "int", Dimensions expected after this token
se ci metto Integer non da nessun errore ma... io preferivo usare int, visto che parlo di una tabella da 20 30mila oggetti che hanno ciascuno una decina di campi...Devi per forza usare Integer e non int. I tipi parametrici devono essere dei reference.
Se stai usando i "generics" vuol dire che stai lavorando su Java 5 (o superiore) e quindi hai anche l'autoboxing! Cioè puoi passare tranquillamente e direttamente un int dove viene chiesto un Integer.
Esempio:
Vector<Integer> v = new Vector<Integer> ();
v.add (12);
v.add (new Integer (12));
Wilcomir
09-12-2006, 12:11
in effetti senza saperlo ho risolto con l'autoboxing, pensavo non fosse molto corretto... beh, meglio così.
ciao e grazie!
solo che mr eclipse sottolinea int e da l'errore:
Syntax error on token "int", Dimensions expected after this token
Aggiungo una noticina forse stupida e ridondante: Eclipse non ti dice esplicitamente che non puoi utilizzare un tipo elementare in quel punto, perchè effettivamente se tu dessi una dimensione all'int (facendone così un array di int) per lui andrebbe bene, visto che anche gli array sono "reference"...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.