Avatar billede md_craig Nybegynder
17. maj 2004 - 00:00 Der er 5 kommentarer og
1 løsning

Meningsløs ClassCastException?

Jeg har et lille problem... har 2 metoder hvor jeg henter et objekt ud af en vector... og jeg får konstant ClassCastException på den ene af dem... der skal jo Castes for at rive et objekt ud... men her er de 2 metoder:
-----------------------------------------------------------------
    public VarerPackage.Varer getVarer(String stregkode)
    {
        int i = 0;
        while(i < varer.size())
        {
            VarerPackage.Varer vare = (VarerPackage.Varer) varer.elementAt(i);
            if(vare.getStregkode().equals(stregkode))
                return vare;
            i++;
        }
        return null;
    }

    public Medarbejder getMedarbejder(String medid)
    {
        int i = 0;
        while(i < medarbejdere.size())
        {
            Leporello.Medarbejder arb = (Leporello.Medarbejder) medarbejdere.elementAt(i);
            if(arb.getID().equals(medid))
                return arb;
            i++;
        }
        return null;
    }
-----------------------------------------------------------------

Jeg vil jo mene de ligner hinanden som 2 dråber vand...
det mener Java dog åbenbart ikke... den bliver ved med at smide fejl på den øverste... den nederste er der intet problem med... ?
Avatar billede mikkelbm Nybegynder
17. maj 2004 - 00:02 #1
Du får kun classcast exceptions hvis din Vector indeholder andre objekter end dem af typen Varer.
Avatar billede mikkelbm Nybegynder
17. maj 2004 - 00:05 #2
Har du tjekket at ALLE dine objekter i din Vector (varer) er af typen Varer.
Avatar billede md_craig Nybegynder
17. maj 2004 - 00:07 #3
Det skulle den også meget gerne indeholde...

Bruger metoden her til at fylde den:

    public void opretVarer(int vareId, double weight, double price, String barcode,
        String name, String descrip, String size)
    {
        // TODO : Construktor kald skal rettes
        VarerPackage.Varer vare = new VarerPackage.Varer(vareId,weight,price,barcode,name,descrip,size,this);
        varer.addElement(vare);
    }
Avatar billede mikkelbm Nybegynder
17. maj 2004 - 00:10 #4
Du kan lave et lille hurtigt tjek:

for (int i = 0; i < varer.size(); i++)
{
  Object o = varer.elementAt(i);
 
  if (o instanceof Varer)
      System.out.println(i + " element ok");
  else
      System.out.println(i + " element ikke ok");
}
Avatar billede md_craig Nybegynder
17. maj 2004 - 00:10 #5
Ahhh... Fand fejlen... :)

I havde ret... Der var 2 typer i....
Avatar billede mikkelbm Nybegynder
17. maj 2004 - 00:11 #6
Så vil jeg tillade mig at lægge et 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