"Dynamic" - Casting in Java

Hullo alle,

Frage mich, ob es irgendwelche Java-Hacker, die können clue mich, warum Folgendes nicht funktioniert:

public class Parent {
    public Parent copy() {
       Parent aCopy = new Parent();
       ...
       return aCopy;
    }
}

public class ChildN extends Parent {
    ...
}

public class Driver {
     public static void main(String[] args) {
         ChildN orig = new ChildN();
         ...
         ChildN copy = orig.getClass().cast(orig.copy());
     }
}

Den code ziemlich glücklich zu kompilieren, aber beschließt, werfen eine classcastexception-Fehler zur Laufzeit D=

Edit: Wow, wirklich schnelle Antworten. Danke Jungs! So es scheint, ich kann nicht niedergeschlagen mit dieser Methode... gibt es irgendeine andere Möglichkeit, das zu tun downcasting in Java? Ich habe darüber nachgedacht, darüber, dass jeder ChildN Klasse überschreiben copy(), war aber nicht begeistert über das hinzufügen der zusätzlichen boilerplate-code.

Sie können es tun. Werfen Sie einen Blick auf mein edit. Ich obwohl Sie Probleme hatten Verständnis "casting" in den ersten Platz.

InformationsquelleAutor user50264 | 2008-12-30

Schreibe einen Kommentar