erlug
[Top] [All Lists]

[Erlug] problema di casting

To: "Erlug" <erlug@xxxxxxxxxxxxxx>
Subject: [Erlug] problema di casting
From: "Simone Saravalli" <dragonlair@xxxxxxxxx>
Date: Thu, 18 Sep 2003 16:51:41 +0200
Salve a tutti,
    sto cercando di imparare java, ma ho già trovato un picciol problema con
il casting tra oggetti, qualcuno può sapientemente spiegarmi che ho
skazzato.

Grazie    Simone Saravalli

class ClasseUno {
    int x;
    ClasseUno(int x) {
        this.x = x;
    }
    int getValue() {
        return x;
    }
    int getValueUno() {
        return x;
    }
}

class ClasseDue extends ClasseUno {
    int y;
    ClasseDue(int x, int y) {
        super(x);
        this.y = y;
    }
    int getValue() {
        return y + super.getValue();
    }
    int getValueDue() {
        return y + super.getValue();
    }
}

class ProvaArray {
    public static void main(String[] args) {
    ClasseUno classe1=new ClasseUno (1);
        ClasseDue classe2=new ClasseDue (2,3);

        classe2=(ClasseDue) classe1;  //quetso casting mi da l'errore
riportato qui sotto why?
   }
}
/*
[simone@localhost simone]$ javac ProvaArray.java
[simone@localhost simone]$ java ProvaArray
Exception in thread "main" java.lang.ClassCastException: ClasseDue
   at 0x40269480: java.lang.Exception.Exception(java.lang.String)
(/usr/lib/libgcj.so.3)
   at 0x4026d5d0:
java.lang.RuntimeException.RuntimeException(java.lang.String)
(/usr/lib/libgcj.so.3)
   at 0x40267b10:
java.lang.ClassCastException.ClassCastException(java.lang.String)
(/usr/lib/libgcj.so.3)
   at 0x4023c4f7: _Jv_InterpMethod.continue1(_Jv_InterpMethodInvocation)
(/usr/lib/libgcj.so.3)
   at 0x4023cc24: _Jv_InterpMethod.run(ffi_cif, void, ffi_raw,
_Jv_InterpMethodInvocation)
(/usr/lib/libgcj.so.3)
   at 0x40239c25: _Jv_InterpMethod.run_normal(ffi_cif, void, ffi_raw, void)
(/usr/lib/libgcj.so.3)
   at 0x403b624c: ?? (??:0)
   at 0x4024f1f8: gnu.gcj.runtime.FirstThread.call_main()
(/usr/lib/libgcj.so.3)
   at 0x402c3e90: gnu.gcj.runtime.FirstThread.run() (/usr/lib/libgcj.so.3)
   at 0x4025c77c: _Jv_ThreadRun(java.lang.Thread) (/usr/lib/libgcj.so.3)
   at 0x402233bc: _Jv_RunMain(java.lang.Class, byte const, int, byte const,
boolean)
(/usr/lib/libgcj.so.3)
   at 0x0804882f: ?? (??:0)
   at 0x40670082: __libc_start_main (/lib/i686/libc.so.6)
   at 0x080486c1: ?? (??:0)
[simone@localhost simone]$
*/



<Prev in Thread] Current Thread [Next in Thread>
  • [Erlug] problema di casting, Simone Saravalli <=