webForumDet fria alternativet
Logga in / Bli medlem

Varför typecast i Vector

Java

4 svar · 336 visningar · startad av Sunix

Medlem sedan juli 2004310 inlägg
Frågan#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()

Medlem sedan dec. 19996 721 inlägg
#2

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

Medlem 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?

Medlem 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

Medlem sedan juli 2004310 inlägg
#5

Tack!!!

255 ms totalt · 4 externa anrop · v20260731065814-full.0bc6e834
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)