3 Stimmen

Typ von Scala Reflexion

Angenommen, ich habe:

trait A

class B extends A

in Klassendateien kompiliert. Später lade ich diese mit Reflection:

val a = Class forName "A"
val b = Class forName "B"

Kann mir jemand sagen, wie ich überprüfen kann, ob b ist der Subtyp von a ?

7voto

Moritz Punkte 14044

Verwenden Sie die isAssignableFrom Methode in Class :

a isAssignableFrom b

Dies ergibt true si b ist eine Unterklasse/Unterschnittstelle von a o b == a .

2voto

Kim Stebel Punkte 41038

Sie können einfach die getInterfaces Methode auf b und durchlaufen das Array, um zu sehen, ob einer von ihnen gleich ist a .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X