instanceof vermeiden und stattdessen dynamisch binden

JonnyRico

Mitglied
Moin,

ich habe da mal ein kleines Problem. Ich bekomme ein Throwable-Objekt in eine Methode übergeben und würde jetzt gerne je nach konkreter Ausprägung einen bestimmten Rückgabewert erzeugen. Ungern möchte ich eigentlich sowas machen:

Java:
public myMethod(Throwable e) {
   if (instance of ExceptiontypeA) 
      return "e1";
   else if (instance of ExceptiontypeB) {
      return "e2";
   /* ... */
}

lieber hätte ich sowas wie:

Java:
public myMethod(Throwable e) {
   return dynamic(e);
}

private String dynamic(ExceptiontypeA e) {return "e1";}
private String dynamic(ExceptiontypeB e) {return "e2";}

Leider funktioniert dies nicht, da anscheinend hier das dynamische Binden nicht klappt. Hat jemand einen Tip wie es doch gehen kann? Vielen Dank im Voraus

Gruß

Jonny
 

Antoras

Top Contributor
Was gefällt dir am ersten Beispiel nicht? Viel Code wegen den Abfragen? Dann pack die Objekte auf die du prüfen willst in eine Map und iteriere mit einer Schleife drüber.
 

Antoras

Top Contributor
Warum sollte instanceof dem OO-Gedanken widersprechen?

Vllt. solltest du überlegen ob es eine Möglichkeit gibt den Code so umzubauen, dass du das Throwable nicht benötigst.

Aber wenn du nur ein Throwable hast, dann kommst du ohne eine Abfrage auf den genauen Typ nun mal nicht weit...
 

JonnyRico

Mitglied
Naja eben genau weil der OO-Gedanke die Polymorphie ist und somit das dynamic-dispatch. Im Normalfall will man ja eben genau nicht abfragen müssen um welchen Datentyp es sich handelt, sondern durch dynamisches Binden die behandelnde Methode "finden" lassen.
Leider kann ich das nicht ändern, da ich mich in einem ServletWrapper befinde und die Schnittstelle leider ein Throwable definiert ;(
Naja okay dann muss ich das wohl anders lösen.....
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Vermeiden von instanceof Abfragen Allgemeine Java-Themen 3
J instanceof vermeiden Allgemeine Java-Themen 10
mihe7 equals und instanceOf pattern matching Allgemeine Java-Themen 9
M instanceof bei generischer Methode Allgemeine Java-Themen 3
E instanceof mit nicht öffentlichen Klassen Allgemeine Java-Themen 2
D instanceof oder was anderes? Allgemeine Java-Themen 12
S Kompositum Muster ohne Exception oder instanceof Operator Allgemeine Java-Themen 6
S instanceof liefert true, aber cast funktioniert nicht! Allgemeine Java-Themen 6
P instanceof mit variabler klasse Allgemeine Java-Themen 3
G Probleme mit ÜbergabeParameter für instanceof Allgemeine Java-Themen 3
T Klasse => Primitiv ? Object instanceof Klasse Allgemeine Java-Themen 2
T Generics und instanceof Allgemeine Java-Themen 10
M Ersatz fuer instanceof Allgemeine Java-Themen 11
Y instanceof unschön ! Allgemeine Java-Themen 6
S instanceof und null Allgemeine Java-Themen 7
S instanceof mit genrics Allgemeine Java-Themen 3
W Überflüssige Deklaration vermeiden...war da nicht mal was? Allgemeine Java-Themen 3
Zrebna Gibt es eine Möglichkeit eine NPE zu vermeiden, wenn null returned wird? Allgemeine Java-Themen 3
B einen color-chooser bauen, ähnliche Farben vermeiden Allgemeine Java-Themen 5
G Input/Output NIO.2: ShutdownChannelGroupException vermeiden Allgemeine Java-Themen 1
A Java - Beim Abspeichern Redundanzen vermeiden! Allgemeine Java-Themen 6
M Harten Cast vermeiden Allgemeine Java-Themen 7
D java.util.ConcurrentModificationException - per Copy vermeiden Allgemeine Java-Themen 11
J Generics / vermeiden von downcasts Allgemeine Java-Themen 2
R java.util.ConcurrentModificationException vermeiden? Allgemeine Java-Themen 8
N Casten durch generic vermeiden ?? Allgemeine Java-Themen 10
B Pattern gesucht, Programm Optionen, Casten vermeiden Allgemeine Java-Themen 3
T Wie kann ich einen doppelstart vermeiden? Allgemeine Java-Themen 9
T Concurrent Modification Exception vermeiden mit Prioritäten Allgemeine Java-Themen 4
B Vermeiden das JButton schneller hintereinander drücken Allgemeine Java-Themen 3
W Was genau sind IOTools? Kann ich stattdessen nicht die Scanner Klasse verwenden? Allgemeine Java-Themen 3

Ähnliche Java Themen

Neue Themen


Oben