webForumDet fria alternativet

Varför typecast i Vector

4 svar · 336 visningar · startad av Sunix

SunixMedlem sedan juli 2004307 inlägg
#1

hej!

Varför måste man göra en typecast på en vector för att få ut metoder ur objektet i vektorn??

ex:
if(((Publication)vec.elementAt(i)).getTitel().equals(titel))
.....

Det behöver man ju inte göra i en array

ex:
arr[0].metod()

emissionMedlem sedan dec. 19996 095 inlägg
#2

Därför att arrayen är typad, medan vectorns elementAt returnerar ett generellt Object.

SunixMedlem sedan juli 2004307 inlägg
#3

Du menar: Fordon[] fordon -- typen på arrayen är Fordon
Medans Vector vec = new Vector(); är inte typad,
Vilket gör att jag måste typcasta om vectorn?

ViktorMedlem sedan aug. 20021 710 inlägg
#4

Japp. Alla objekt i en vector (och ArrayList, LinkedList, HashMap osv) är av typen Object,dvs grund typen i Java och du måste specifisera vad det är för typ när du hämtar ut dem.
I Java 1.5 finns det dock Vectorer, listor och map's som är typade,

List<Publication> myPubList=new ArrayList<Publication>();

/Viktor

SunixMedlem sedan juli 2004307 inlägg
#5

Tack!!!

Genererad på 384 ms · cache AV · v20260730165559-full.f96bc7eb