Mit diesem Code
function someFunction(classParam:Class):Boolean
{
// how to know if classParam implements some interface?
}
d.h. Vergleich von classParam
avec IEventDispatcher
Schnittstelle:
someFunction(EventDispatcher) // returns true
someFunction(Object) // returns false
Ich weiß, dass es nicht möglich ist, mit is
Betreiber. Aber gibt es eine Möglichkeit, dies zu tun? Gibt es eine Möglichkeit zu wissen, ob eine Klasse eine Schnittstelle implementiert (oder eine Unterklasse einer anderen Klasse ist)?
Mögliche Lösungen:
A. Erstellen eines Objekts von classParam
und die Verwendung dieses Objekts zum Vergleich mit is
Betreiber.
function someFunction(classParam:Class):Boolean
{
return (new classParam()) is IEventDispatcher
}
B. Verwendung von describeType()
function someFunction(classParam:Class):Boolean
{
var xml:XML = describeType(classParam)
// found "implementsInterface" value in xml and compare to IEventDispatcher
}
Es gibt einen Weg, der KEINE VERWENDUNG describeType
oder erstellt eine new
Betreiber?