webForumDet fria alternativet

Varför typecast i Vector

4 svar · 336 visningar · startad av Sunix

SunixMedlem sedan juli 2004310 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 721 inlägg
#2

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

SunixMedlem sedan juli 2004310 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 752 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 2004310 inlägg
#5

Tack!!!

126 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)