![]() ![]() |
|
I dati di una collezione sono normalmente omogenei,
cioè hanno lo stesso tipo. Se usiamo gli array, possiamo dichiararne
il tipo:
Il compilatore può controllare la consistenza dei
tipi:
|
![]() ![]() |
|
E con i Vector? Gli elementi di
un Vector [locale,
Medialab,
Sun]
sono istanze di Object:
Quindi:
|
![]() ![]() |
|
Come si può garantire che una collezione
(p.e. un Vector) contenga sempre dati dello stesso tipo?
... controllando il tipo di un dato prima di inserirlo, ovviamente....
|
![]() ![]() |
|
Soluzione: Definisci
una sottoclasse StringVector
di Vector, inserendo un controllo sul tipo dei dati inseriti
nel vettore [UseStringVector2.java]:
|
![]() ![]() |
|
Attenzione: i dati che si estraggono da
un Vector sono sempre istanze di Object:
bisogna usare un cast per manipolarli.
Non si può ridefinire il metodo elementAt
in modo da restituire un oggetto di tipo String:
|
![]() ![]() |
|
Elementi di tipi elementari Java (int,
double,
char,
boolean, ...) non possono essere inseriti direttamente
in collezioni come Vector, perché non sono istanze
di Object.
Classi contenitore (wrapper): Integer, Double, Character, Boolean, ...Servono per racchiudere un dato elementare in un oggetto:
Forniscono metodi per convertire dati elementari tra diversi
formati, e metodi di utilità generale: si veda ad esempio Integer
[locale,
Medialab,
Sun].
|
![]() ![]() |
|
![]() ![]() |
Come si gestisce un vettore di interi?
|