GWT-Workaround für fehlende Class.isInstance ()

9

Ich versuche ein Job-Scheduling-System in GWT zu schreiben, das ein Array von Exceptions ( Class<? extends Exception>[] exceptions ) enthält, das durch Wiederholen des Jobs aufgelöst werden könnte. Wenn der Scheduler eine Ausnahme abfängt, muss ich feststellen, ob diese Ausnahme mit einer der Klassen im Array übereinstimmt. Also, ich möchte eine Funktion wie folgt haben:

%Vor%

Leider ist Class.isInstance(...) in GWT nicht verfügbar.

Gibt es dafür eine gute Lösung? Meine derzeitige beste Schätzung ist ungefähr so:

%Vor%

Leider unterstützt dieser Ansatz das Testen von Schnittstellen nicht, und ich habe keine Idee, wie das behoben werden kann, da auch Class.getInterfaces() nicht verfügbar ist. Aber würde dieser Ansatz in allen anderen Fällen zumindest so funktionieren wie Java Class.isInstance , ausgenommen Schnittstellen? Genauer gesagt, wenn ich mir GWTs Quelle für Class.java , enthält die getSuperclass() -Methode eine Überprüfung von isClassMetadataEnabled() , die möglicherweise falsch zurückgibt (aber ich weiß nicht, in welchen Fällen), da sie a enthält Kommentar sagen "Dieser Körper kann durch den Compiler ersetzt werden".

Oder gibt es einen besseren Weg, dies zu tun?

    
Markus A. 20.04.2014, 23:58
quelle

2 Antworten

3

Ich benutze folgenden Code:

%Vor%     
Sergey Bondarev 23.09.2014 17:40
quelle
0

Vielleicht würde so etwas helfen:

%Vor%

Es hängt davon ab, wie Sie das Array der Ausnahmen erstellen. Wenn der java 7-Kram richtig funktioniert, können Sie alle Ausnahmen in einen Haken setzen:

%Vor%     
dexter 29.04.2014 22:32
quelle

Tags und Links