|
| problem med typecasting af objekter fra en~ Fra : Jakob Lund Krarup |
Dato : 29-05-01 12:22 |
|
Er der noget specielt man skal være opmærksom på v. subj.??
Jeg har en Vector ved navn testListe som indeholder objekter af typen
GenerelTest.
Jeg vil så gerne udføre metoden "hentNavn()" på det objekt der er på
"taeller"s plads i Vectoren.
Det ville jeg gøre sådan
elementNavn = (GenerelTest)(testListe.elementAt(taeller)).hentNavn();
Men det giver to fejlbeskeder:
(1)
d:\programmering\valgfagsprojekt\working\TestServer.java:55: cannot resolve
symbol
symbol : method hentNavn ()
location: class java.lang.Object
elementNavn = (GenerelTest)(testListe.elementAt(taeller)).hentNavn();
og
(2)
d:\programmering\valgfagsprojekt\working\TestServer.java:55: incompatible
types
found : GenerelTest
required: java.lang.String
elementNavn = (GenerelTest)(testListe.elementAt(taeller)).hentNavn();
- Hvilket jeg tolker som om jeg ikke har typecastet rigtigt - for den klasse
jeg arbejder i kender godt GenerelTest.
Jeg vil sætte stor pris på et svar direkte til mig også.
Venlig hilsen - Jakob
| |
Steffen Enni (29-05-2001)
| Kommentar Fra : Steffen Enni |
Dato : 29-05-01 12:35 |
|
Flyt dine paranteser:
elementNavn = ((GenerelTest)testListe.elementAt(tæller)).hentNavn();
Classcasting binder ikke så hårdt som . operatoren. Det vil sige,
(X)obj.y() læses af compileren som (X) (obj.y()).
Venlig hilsen,
Steffen Enni
http://www.zachosw.dk
| |
Kim Petersson (30-05-2001)
| Kommentar Fra : Kim Petersson |
Dato : 30-05-01 06:57 |
|
Hej Jakob
Du skal blot flytte en enkelt parantes.
> elementNavn = (GenerelTest)(testListe.elementAt(taeller)).hentNavn();
så dit udtryk kommer til at se således ud:
elementNavn = ((GenerelTest) testListe.elementAt(taeller)).hentNavn();
Venlig hilsen
Kim Petersson
TopToy A/S
| |
|
|