Avatar billede simonvalter Praktikant
23. november 2003 - 17:04 Der er 6 kommentarer og
1 løsning

ClassCastException ved typecasting til Interface.

I forbindelse med et persistence framework har jeg et MapperFactory der retunerer en mapper for en klasse

i min test klasse prøver jeg dette
System.out.println(PersistenceFacade.getInstance().findMapper(Barn.class));

i min Persistence facade har jeg denne metode
public IMapper findMapper(Class c) {
    return (IMapper) mappers.get(c.getName());
}

mappers er et HashMap som kommer fra mit MapperFactory og retunerer et HashMap fra en extern properties fil

IMapper er et interface som AbstractPersistenceMapper implementerer



Jeg kan saktens system.out mappers.get(c.getName() og få den tilhørende mapper men jeg kan ikke caste til IMapper for så får jeg en
java.lang.ClassCastException

sig til hvis det ikke giver mening det jeg siger .. jeg fatter det knapt selv ;)
Avatar billede arne_v Ekspert
23. november 2003 - 17:13 #1
Hvilke typer er der gemt i mapper ?

De skal være objekter som implementerer IMapper !

Ellers får du ClassCastException.
Avatar billede simonvalter Praktikant
23. november 2003 - 17:21 #2
jeg er ikke sikker på jeg er med

i min properties fil har jeg
strandhotellet.domain.Barn = BarnRDBMapper

den kommer jo bare ind som en string

men i systemet nedarver BarnRDBMapper fra AbstractRDBMapper som nedarver fra AbstractPersistenceMapper som implementerer IMapper
Avatar billede arne_v Ekspert
23. november 2003 - 17:27 #3
Ja men står du med strengen "BarnRDBMapper" eller et objekt af typen
BarnRDBMapper ?

Det første fejler - det andet bør virke !
Avatar billede simonvalter Praktikant
23. november 2003 - 17:33 #4
jeg står med strengen .. nogen ideer til hvordan jeg får den til at opfatte det som et objekt ..
Avatar billede arne_v Ekspert
23. november 2003 - 17:36 #5
Class.forName(klassenavn).newInstance()
Avatar billede simonvalter Praktikant
23. november 2003 - 17:59 #6
ok tak .. smid et svar
Avatar billede arne_v Ekspert
23. november 2003 - 18:00 #7
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester