使用这段代码
function someFunction(classParam:Class):Boolean
{
// how to know if classParam implements some interface?
}
即,将classParam
与IEventDispatcher
接口进行比较:
someFunction(EventDispatcher) // returns true
someFunction(Object) // returns false
我知道不能使用
is
运算符来实现。但是,有没有其他方法可以做到呢?有没有办法知道一个类是否实现了某个接口?(或者是另一个类的子类?)可能的解决方法:
A. 创建一个
classParam
的对象,并使用该对象使用is
运算符进行比较。function someFunction(classParam:Class):Boolean
{
return (new classParam()) is IEventDispatcher
}
B. 使用describeType()
function someFunction(classParam:Class):Boolean
{
var xml:XML = describeType(classParam)
// found "implementsInterface" value in xml and compare to IEventDispatcher
}
有一种方法可以不使用describeType
或创建new
操作符吗?
describeType
的速度。它不是很慢吗? - Lucas Gabriel Sánchez