Avatar billede noerdar-dilling Nybegynder
10. april 2005 - 20:49 Der er 19 kommentarer og
1 løsning

Probemer med Type casting fra Object til employee object

Problemet er at jeg opretter en ArrayList med en masse employee objecter via en Bean classe. Jeg opretter de forskellige objecter gennem en foresåørgsel til en database. Men her efter ønsker jeg at lede ArrayListen igennem og hente nogle data, som senerer skal indsættes i et tekstfelt. Men fejlen jeg får er denne:

Type mismatch: cannot convert from Object to employee

Jeg kan ikke rigtig få det type casted hvordan gør jeg? Der står fejl her i koden hvor det er.


    public void addEmployees()    {
       
        try {

        dbConnect dbc = new dbConnect();
        Connection con = dbc.getConnection();
        Statement stmt = con.createStatement();
        ResultSet getEmp = stmt.executeQuery("SELECT fname, mname, lname, cpr FROM Employee");     
        ArrayList empAktuel = new ArrayList();

        while(getEmp.next()) {
            empAktuel.add(new employee(getEmp.getString(1), getEmp.getString(2), getEmp.getString(3), getEmp.getString(4)));
         
        }
       
      for(int i = 0; i >= empAktuel.size(); i++ )    {
         
          employee myEmp = empAktuel.get(i);  FEJL HER!!!
         
          String fname = myEmp.getfname();
         
         
          tArea.setText(mystring + "/n");
     
    }

        } catch (Exception e) {
              System.err.println(e);
            }
   
   
       
    }
Avatar billede kalp Novice
10. april 2005 - 20:51 #1
employee myEmp = ((employee)empAktuel).get(i);
Avatar billede arne_v Ekspert
10. april 2005 - 20:51 #2
Kan du ikke bare:

employee myEmp = (employee)empAktuel.get(i);

?
Avatar billede mikkelbm Nybegynder
10. april 2005 - 20:52 #3
employee myEmp = empAktuel.get(i);  FEJL HER!!!

skal være:

employee myEmp = (empleyee)empAktuel.get(i);
Avatar billede arne_v Ekspert
10. april 2005 - 20:52 #4
Hvis du bruger Java 1.5/5.0 kan du iøvrigt alternativt bruge en:

ArrayList<employee>
Avatar billede mikkelbm Nybegynder
10. april 2005 - 20:53 #5
>> kalp

Du caster hele ArrayList'en og ikke det enkelte element :)
Avatar billede kalp Novice
10. april 2005 - 20:54 #6
arne_v >> Den info kunne jeg da godt bruge:o) fattede ikke hvordan de der <> tegn var gyldige!!

mikkelbm >> hehe okay jeg sad faktisk og tænkte på det... længe siden jeg har programmeret, men selv om den gør det så virker det da stadig eller?
Avatar billede mikkelbm Nybegynder
10. april 2005 - 20:56 #7
Ja, det virker, hvis han på sit employee objekt har en metode der hedder get(int i)...
Ellers gør det ikke...
Avatar billede mikkelbm Nybegynder
10. april 2005 - 20:56 #8
Han vil dog få en ClassCastException ved at gøre som du foreslår.
Avatar billede noerdar-dilling Nybegynder
10. april 2005 - 20:57 #9
ok tak hvordan ser hel oprettelsen af arraylisten så ud

ArrayList<employee> empAktuel = new Arraylist

eller?
Avatar billede mikkelbm Nybegynder
10. april 2005 - 20:59 #10
ArrayList<employee> empAktuel = new Arraylist<employee>();
Avatar billede mikkelbm Nybegynder
10. april 2005 - 20:59 #11
Og hvis du gør det, vil du som Arne påpeger ikke få fejl ved:

employee myEmp = empAktuel.get(i);
Avatar billede arne_v Ekspert
10. april 2005 - 21:00 #12
Brug af generics er beskrevet heri:
  http://www.eksperten.dk/artikler/167
Avatar billede kalp Novice
10. april 2005 - 21:01 #13
mikkelbm >> Du har da helt ret nu jeg tænker over det:)) Jeg har heller ikke programmeret længe, men skal snart til det igen så kommer det hele tilbage:o)
Avatar billede arne_v Ekspert
10. april 2005 - 21:02 #14
Og bemærk at generics kræver nyeste Java version - det kører ikke på 1.4 og 1.3
Avatar billede arne_v Ekspert
26. april 2005 - 00:09 #15
Tid at få afsluttet her ?

Og et svar fra mig
Avatar billede mikkelbm Nybegynder
26. april 2005 - 00:11 #16
Ditto...
Avatar billede mikkelbm Nybegynder
14. maj 2005 - 20:09 #17
Lukketid?
Avatar billede kalp Novice
14. maj 2005 - 20:21 #18
Jeg fandt egentlig ud af hvorfor jeg typecastede på den måde der:))
men det var mere hvis man skulle have fat i metoderne i employee.

((employee)empAktuel.get(x)).KLASSENSMETODER

typecaster jeg den sådan her virker det ikke.

(employee)empAktuel.get(x).KLASSENSMETODER

men det måske fordi jeg ikke gemme objektet nogen steder.
Avatar billede kalp Novice
14. maj 2005 - 20:22 #19
og det skulle egentlig ikke have været et svar.. ved ikke hvorfor jeg fik sat en prik i der.

så du acceptere bare arne_v's og mikkelbm's svar.
Avatar billede mikkelbm Nybegynder
27. maj 2005 - 09:06 #20
Hmm... Hvorfor skulle mit svar afvises?
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