Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht?

s0mbre

Mitglied
Also angenommen ich habe ein Objekt einer Klasse, die diverse Unterklassen hat. Und mein Objekt entspricht einer dieser Unterklassen. Dann kann ich theoretisch ja mit OBJEKT instanceof UNTERKLASSE_OBJEKT durch alle Unterklassen gehen und für jeden gucken, wie sich die expression auswertet. Wenn ich jetzt aber 100 Unterklassen habe, gestaltet sich diese Methode als unpraktisch, weswegen ich nach einer Alternative suche
 

s0mbre

Mitglied
Die Klasse entspricht einem Element, dass ich auf einer graphischen Oberfläche zeichnen möchte. Und wenn ich nicht weiß, von welcher Art Unterklasse mein (zufällig) generiertes Objekt ist, weiß ich nicht, welches Bild ich laden muss.
(ich habe auch keine 100, aber die 10 Zeilen if bedingung sehen trotzdem nach garbage code aus)
 

Robat

Top Contributor
Ich würde mal in den Raum werfen, dass eine separate Klasse für jedes Element deiner Oberfläche nicht der Beste Ansatz ist.
Zumindest klingen 100 Unterklassen seehr fragwürdig.
 

truesoul

Top Contributor
Meinst du mit Unterklassen:

Java:
class UnterUnterKlasse extends UnterKlasse {}

class UnterKlasse extends OberKlasse {}

class OberKlasse {}

Und wie schon @Robat erwähnte ist das kein guter Ansatz.

Hast du vielleicht ein Beispiel (Code)?

Grüße
 

s0mbre

Mitglied
Kann leider kein Beispiel Code geben, weil das teilweise geschützt ist und aus diversen anderen Gründen. Meine Rahmenbedingungen lassen keinen anderen Ansatz zu, aber ich werde wohl auf instanceof zurückgreifen müssen.. ^^'
Trotzdem danke :)
 

Robat

Top Contributor
Als Rahmenbedingung?.. Nun gut..

Musst du - wenn ich dich richtig verstanden habe - nicht.
Du willst anhand des Types eines Objektes ein gewisses Bild laden. Wieso besitzen dann die Objekte nicht ein entsprechendes Attribut was bspw. den Pfad zum Bild oder das Bild an sich enthält?
 

s0mbre

Mitglied
Es geht wirklich nicht, und ich weiß es ist komisch, und so dumm es klingt, ich darf keine Rahmenbedingungen preisgeben ^^' ich komm mir hier grade langsam bescheuert vor xD
wollte doch nur wissen, ob es eine Alternative zu instanceof gibt :(
 

JCODA

Top Contributor
Wenn du ein Attribut hinzufügen kannst, kannst du ja auch einen Identifier für das Bild hinzufügen, dann sind deine Unterklassen nicht jeweils "Sonderfälle" sondern jede Unterklasse hat eine gemeinsame Schnittstelle, die sagt, welches Bild auszuwählen ist.
 

mrBrown

Super-Moderator
Mitarbeiter
Wenn du ein Attribut hinzufügen kannst, kannst du ja auch einen Identifier für das Bild hinzufügen, dann sind deine Unterklassen nicht jeweils "Sonderfälle" sondern jede Unterklasse hat eine gemeinsame Schnittstelle, die sagt, welches Bild auszuwählen ist.
Allerdings halt nicht nur mit Klassenattributen (die Anforderung ist aber auch ziemlich ... ungünstig)
 

BuddaKaeks

Bekanntes Mitglied
Sonst geht natürlich auch, wenn auch nicht schön:

Du erstellst eine Map<Class, string>, in der du pro Unterklasse einen string reinspeicherst:
Java:
map.put(UnterklasseXYZ.class, "path")

Und wenn du dann dein Objekt hast, rufst du:

Java:
map.get(object.getClass())

auf.
Ist nicht schön, aber sollte funktionieren. Vermeidet riesige If-Bäume.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
U Warum gibt das eine Nullpointerexception? (Switch) Java Basics - Anfänger-Themen 6
K Warum gibt mir z. B. 40^128 eine Zahl? Ich dachte mit xor kann man nur booleanwerte erhalten, also prüfen ob etwas whar oder falsch ist? Java Basics - Anfänger-Themen 1
R Gibt es Eine einfache Programierung dieser Methoden Java Basics - Anfänger-Themen 8
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
O Funktioniert dies? Und gibt es eine bessere Lösung? Java Basics - Anfänger-Themen 6
R Gibt es eine (Schnittstelle) für .ini Datei Formatierungen? Java Basics - Anfänger-Themen 8
M Gibt es eine einfachere Variante diese Aufgabenstellung zu lösen? Java Basics - Anfänger-Themen 11
J Gibt es eine möglichkeit ähnlich wie .equals(bedingung1 ||bedingung ..n) ? Java Basics - Anfänger-Themen 5
S Welche möglichkeiten gibt es eine Zahl zu spiegeln? Java Basics - Anfänger-Themen 17
E Gibt es eine ähnliche Datenstruktur wie eine Hashmap Java Basics - Anfänger-Themen 3
L JTabel abfragen ob es eine erste Zeile gibt? Java Basics - Anfänger-Themen 2
G Gibt es eine möglichkeit den Wochentag herauszufinden? Java Basics - Anfänger-Themen 28
M Gibt es eine Begrenzung der Anzahl der Objekte? Java Basics - Anfänger-Themen 5
T gibt es eine methode die einem alle Strings zurückliefert? Java Basics - Anfänger-Themen 7
F Gibt es eine Datenstruktur für Koordinaten x, y? Java Basics - Anfänger-Themen 8
M gibt es eine collection mit definierter maximaler größe Java Basics - Anfänger-Themen 4
T Gibt es eine Klasse die überprüft ob es ein Datum gibt Java Basics - Anfänger-Themen 10
A Gibt es eine Methode die den Suffix prüft ? Java Basics - Anfänger-Themen 3
G Gibt es so etwas wie eine Textfeldgruppe? Java Basics - Anfänger-Themen 2
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
P Gibt es einen anderen Weg um "{}" in IntelliJ zu schreiben? Java Basics - Anfänger-Themen 5
T HashMap Lsite gibt die sachen nicht aus wie gewollt. Java Basics - Anfänger-Themen 3
Z Java ArrayList speichert falsche Daten ab bzw. gibt falsche Daten aus? Java Basics - Anfänger-Themen 42
N Gibt es hierfür einen Shortcut Java Basics - Anfänger-Themen 5
J Interpreter-Fehler Programm gibt nicht gewünschtes Ergebnis aus Java Basics - Anfänger-Themen 11
G Input/Output getText() gibt keinen Wert! Java Basics - Anfänger-Themen 13
Arita welche Fehler gibt es noch? wie kann ich es noch vervollständigen Java Basics - Anfänger-Themen 15
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
S Gibt es ein simples JWebbrowser Element? Java Basics - Anfänger-Themen 6
S Gibt es irgendeine Möglichkeit, dies zu tun?(Android Studio) Java Basics - Anfänger-Themen 1
S Gibt es sowas (JSpinner)? Java Basics - Anfänger-Themen 9
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
J Erste Schritte Gibt es setMantisse? Java Basics - Anfänger-Themen 7
J Vektoren Add gibt nicht das aus was es sollte Java Basics - Anfänger-Themen 3
S Gibt es einen guten kostenlosen Online-kurs Java Basics - Anfänger-Themen 2
D Warum gibt mir das Programm nicht den Array invertiert an ? Java Basics - Anfänger-Themen 1
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
S Gibt es für die Klasse HashMap Generic Implementierungen? Java Basics - Anfänger-Themen 11
N Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben Java Basics - Anfänger-Themen 22
L Methoden Rekursion gibt alten Wert wieder Java Basics - Anfänger-Themen 37
E Gibt es in Java Properties (wie in C#) Java Basics - Anfänger-Themen 6
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
B Wieso gibt er hier nur die ungeraden Zahlen aus? Java Basics - Anfänger-Themen 5
B Wieso gibt das Programm in der Console kein Ergebnis aus? Java Basics - Anfänger-Themen 2
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
JavaNewbie2.0 Gibt meiner Meinung etwas falsches aus. Java Basics - Anfänger-Themen 7
S Ausgabe gibt nur Arrayadresse aus... Java Basics - Anfänger-Themen 4
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
Tommy Nightmare void Methode gibt Array zurück Java Basics - Anfänger-Themen 3
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
OlafHD Gibt es einen Laufbalken? Java Basics - Anfänger-Themen 2
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
G Input/Output InputStream gibt nicht die Korrekten Werte aus Java Basics - Anfänger-Themen 10
W IllegalArgumentException gibt nichts aus Java Basics - Anfänger-Themen 2
K Programm gibt nichts aus? Java Basics - Anfänger-Themen 2
M Erste Schritte Wie speichert und gibt man Arrays aus? (JLabel) Java Basics - Anfänger-Themen 12
B gibt es ein Stundenplan-Algorithmus? Java Basics - Anfänger-Themen 11
G Konsole gibt "alte" sachen aus Java Basics - Anfänger-Themen 3
J while(nst == 0) gibt Fehlermeldung Java Basics - Anfänger-Themen 4
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
F Java-Programm gibt in Eingabeaufforderung nichts aus Java Basics - Anfänger-Themen 4
T Konsole gibt nicht das Gewünschte aus Java Basics - Anfänger-Themen 5
T Input/Output GregorianCalender gibt falsch aus? Java Basics - Anfänger-Themen 4
C OOP Erstellen eigener Objekte die es schon gibt "schlau"? Java Basics - Anfänger-Themen 3
I beim auslesen der Properties gibt es ein Fehler Java Basics - Anfänger-Themen 7
C Input/Output System.in.read() gibt nicht -1 zurück? Java Basics - Anfänger-Themen 3
T String gibFarbe() - gibt nix?! Java Basics - Anfänger-Themen 13
L Gibt es etwas wie "HashMap <String, String, String> Java Basics - Anfänger-Themen 9
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2
P Temperatur Umrechner gibt nur ein Ergebnis aus Java Basics - Anfänger-Themen 2
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
M Input/Output File.listFiles() gibt null zurück Java Basics - Anfänger-Themen 3
C Welches Format gibt Java aus? Java Basics - Anfänger-Themen 5
S Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum? Java Basics - Anfänger-Themen 5
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
M toString gibt "null" statt "0.0" aus Java Basics - Anfänger-Themen 5
P 2D Array auslesen gibt nur letzten Wert aus Java Basics - Anfänger-Themen 11
T Methoden methode gibt array bound exeption Java Basics - Anfänger-Themen 8
B Input/Output File.length() gibt bei vielen Ordnern 0 zurück Java Basics - Anfänger-Themen 9
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
Xendarii Quicksort gibt kein Ergebnis aus Java Basics - Anfänger-Themen 13
SheldoN Gibt es größere Datentypen als long? Java Basics - Anfänger-Themen 2
S Rückgabetyp - Objekt gibt sich selber zurück Java Basics - Anfänger-Themen 4
G Eclipse gibt Fehler aus, Jelliot (z.B.) nicht Java Basics - Anfänger-Themen 1
C Programm gibt merkwürdige Zahl aus Java Basics - Anfänger-Themen 3
C Umgebungsvariable import anweisung gibt fehlermeldung Java Basics - Anfänger-Themen 2
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
P toString-Methode gibt immer null vor Variable aus Java Basics - Anfänger-Themen 9
L JTextField getText() gibt immer null zurück Java Basics - Anfänger-Themen 10
K Javalexikon für Grundbegriffe? Gibt es sowas? Java Basics - Anfänger-Themen 7
J SuM.kern.Maus gibt null obwohl initialisiert Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben