Anzeige:
Ergebnis 1 bis 5 von 5

Thema: dynamisch Casten

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.02.2002
    Beiträge
    41

    dynamisch Casten

    Hi,

    ich hab hier ein Problem und weiss irgendwie nicht, oder das zum einen so geht, oder wenn es gehen sollte, wie es funktioniert.

    Ich habe eine Abstrakte Klasse, die dynamisch Methoden aufruft, die sie über einen Key aus einer Hashtable bekommt. Jede Kindklasse kann Methoden mit einem Key in die Hashtable hinzufügen. Wenn jetzt eine Methode aufgerufen wird, die nur die Abstrakte Klasse hat und diese dann die Methode aufruft, die sie über den Key bekommen hat, kennt sie die Methoda ja natürlich nicht, weil das Objekt ja nicht vom richtigen Typ ist.
    Gibt es eine Möglichkeit dynamisch zu casten, also während der Laufzeit zu bestimmen, in welchen Typ ein Objekt umgewandelt werden soll?

    Ich hoffen, mir kann jemand helfen...

    Gruss
    Sebastian

  2. #2
    Registrierter Benutzer
    Registriert seit
    20.07.2000
    Ort
    Österreich
    Beiträge
    189
    möglich ist es schon:

    Code:
    if ( obj instanceof klasse1)
        ((klasse1)obj).methode1();
    if ( obj instanceof klasse2)
        ((klasse2)obj).methode2();
    ...
    ..
    .
    das ist aber alles andere als schöner objektorientierter code.
    vielleicht solltest du dir überlegen ob du das problem nicht auf eine andere art lösen kannst.

  3. #3
    Registrierter Benutzer
    Registriert seit
    07.02.2002
    Beiträge
    41
    Klar, dass es so geht, weiss ich. Aber was mache ich, wenn der Name der Klasse nicht bekannt ist? Bzw erst während der Laufzeit bekannt wird.

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Da das Java so afaik nicht kann habe ich mal bei Google vorbeigeguckt und das hier gesehen: http://www.llnl.gov/CASC/components/...e/node151.html - der zweite wäre wohl was du brauchst.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  5. #5
    Registrierter Benutzer
    Registriert seit
    07.02.2002
    Beiträge
    41
    mhm, funktioniert irgendwie nicht ganz, bzw vieleicht verstehe ich das auch nich so ganz.

    aber, wenn ich das hier so lese:
    Also, in casting, they both create a new Java object that owns a new reference to the IOR object
    Da kann ich mir doch auch mit den Reflections 'n neues Objekt erzeugen und es sollte auch klappen.

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •