Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
Ich hab ein Objekt vom Typ Object. Wenn ich auf diesem Objekt getClass().getName() aufrufe, bekomme ich die eigentliche Klasse angezeigt, von der das Objekt ein Typ ist. Ich möchte nun gerne mein Objekt casten, damit ich die Funktionen der Klasse nutzen kann. Wie kann ich das machen?
Btw, von welchem Typ das Objekt ist, erfahre ich natürlich erst zur laufzeit...
Ich möchte nun gerne mein Objekt casten, damit ich die Funktionen der Klasse nutzen kann. Wie kann ich das machen?
Btw, von welchem Typ das Objekt ist, erfahre ich natürlich erst zur laufzeit...
Ähm, wie genau soll das funktionieren? Du bekommst ein Objekt, von dem du erst zur Laufzeit weißt von welchem Typ das ist. Und jetzt willst du objektspezifische Methode auf dem Objekt aufrufen? Da steig ich nicht ganz hinter Poste vllt mal nen kleines Beispiel oder etwas mehr Erklärung.
Zu dem dynamischen Cast:
Wenn du das Class Objekt hast, dann kannst du die cast Methode nutzen.
naja, Code kann ich nicht posten, da ich noch keinen habe. aber alle Klassen, von denen mein Objekt zur laufzeit instanz sein kann, verfügt über die compareTo() Methode. Und diese möchte ich aufrufen.
Achso, dann sollten deine Objekte alle Comparable (oder besser Comparable<DeineKlasse>) implementieren. Du kannst dann entweder die Methode anpassen, dass sie ein Comparable entgegenimmt, oder deine Klasse auf Comparable casten. Dann kannst du die Methode compareTo aufrufen.
Naja, du solltest schon mal wissen, welche Klassen denn in Frage kommen, die kannst du dann mit instanceof durchtesten.
Ich denk' du suchst nach Reflection...
[c]getClass()[/c] ist schon mal gut... dann aber nicht [c]getName()[/c] sondern [c]getDeclaredMethod(String methName, Class<?> ... types)[/c] mit entsprechenden Parametertypen.
Sauberer bleibt aber dennoch wie schon erwähnt, wenn die Klassen allesamt [c]Comparable[/c] implementieren.Die Generics-Parameter kannst dir bei [c]instanceOf[/c] allerdings sparen, die funktionieren erst beim anschliessenden Cast.
da noch kein Code existiert, mach deinen Code von anfang an richtig und nichts ueber Reflection oder instanceof abfragen etc.
Wenn es sich um Comparable Objekte handelt wegen der compareTo methode, so arbeite mit Comparable und nicht mit Object.
ansonsten ist das etwas schwammig als dass es eine klare Antwort geben kann, allgemein ist zu sagen, dass man niemals mit den konkreten Implementierungen arbeiten sollte, sondern stets mit einer Abstraktion (abstrakten Klasse oder besser Interface)