Avatar billede Bennysørensen Praktikant
13. oktober 2003 - 12:57 Der er 7 kommentarer og
1 løsning

Java interfaces vs. ClassDefNotFoundError

Jeg har en opgave med denne stump kode:

interface A
{
    public void m();   
}

class B implements A
{
    public void m()
    {
        System.out.println("B.m");
    }
    public void n()
    {
        System.out.println("B.n");
    }
}
class C implements A
{
    public void m()
    {
        System.out.println("C.m");
    }
}
class D extends B
{
}

class intTester
{
    public static void main(String[] argv)
    {
        Object o = new B();
    }
}

Opgaven går ud på at regne ud hvilke klasseinstatieringer der giver fejl under kørsel eller kompilering.

Ex:
A a = new B();
D d = new C();

etc etc.

Igennem de 18 opgaver er det ikke lykkes mig at få programmet til at køre en eneste gang. Der er ikke andet end ClassDefNotFoundError's. Et stykke hen ad vejen kan jeg forstå det, men undrer mig over at
Object o = new B();
ikke kan lade sig gøre...jeg mener at eftersom Object ligger allerøverst, og eftersom man kan typecaste til alle subklasser, skulle dén ikke give en fejl...

Forklaringer modtages med kyshånd (sådan da)
Avatar billede arne_v Ekspert
13. oktober 2003 - 13:02 #1
Jeg har en grum mistanke om at ClassDefNotFoundError er intTester den
ikke kan finde.

Og at det slet ikke har noget selve klasserne at gøre.

Starter du programmet rigtigt ?
Avatar billede magoo20000 Nybegynder
13. oktober 2003 - 13:04 #2
Hvor er Bs constructor?
Avatar billede arne_v Ekspert
13. oktober 2003 - 13:08 #3
Hvi sman ikke angiver constructor får den en default constructor uden
argumenter.
Avatar billede magoo20000 Nybegynder
13. oktober 2003 - 13:08 #4
Det må da simpelthen være derfor - samme gælder for C.
A a = new B();
eller
Object o = new B();
burde nu virke.
Avatar billede magoo20000 Nybegynder
13. oktober 2003 - 13:10 #5
Hold op jeg sover.. Det er jo explicit..Ja!
Avatar billede arne_v Ekspert
13. oktober 2003 - 13:11 #6
anders>

Må vi se hele fejlen ?

(jeg tror stafigvæk at det er main klassen den ikke kan finde)
Avatar billede Bennysørensen Praktikant
13. oktober 2003 - 13:15 #7
Well, det VAR mainklassen, den ikke kunne finde. Jeg har smidt koden over i en anden .java.fil, og nu kører det hele. Lidt ærgerligt, at jeg ikke så det selv...endnu en streg i den store ErfaringsBog

Tak for kommentarerne.
Avatar billede arne_v Ekspert
13. oktober 2003 - 13:18 #8
OK
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