作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用此代码
function someFunction(classParam:Class):Boolean
{
// how to know if classParam implements some interface?
}
classParam
与
IEventDispatcher
界面:
someFunction(EventDispatcher) // returns true
someFunction(Object) // returns false
is
做不到运算符(operator)。但是,有没有办法做到这一点?有没有办法知道一个类是否实现了某个接口(interface)? (或者是另一个类的子类?)
classParam
的对象并使用该对象进行比较,使用
is
运算符(operator)。
function someFunction(classParam:Class):Boolean
{
return (new classParam()) is IEventDispatcher
}
describeType()
function someFunction(classParam:Class):Boolean
{
var xml:XML = describeType(classParam)
// found "implementsInterface" value in xml and compare to IEventDispatcher
}
describeType
或创建
new
运算符(operator)?
最佳答案
除了使用 describeType
之外,我没有看到任何方法可以实现您想要做的事情。 .
它是为此目的而创建的,您为什么不想使用它呢?
编辑:
它实际上只需要 2 行来做到这一点:
var classDescription:XML = describeType(classParam);
return (classDescription.factory.implementsInterface.(@type == getQualifiedClassName(IEventDispatcher)).length() != 0);
return (describeType(classParam).factory.implementsInterface.(@type == getQualifiedClassName(IEventDispatcher)).length() != 0);
关于actionscript-3 - AS3 - 我可以知道一个类是否实现了一个接口(interface)(或者是另一个类的子类)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2518180/
我是一名优秀的程序员,十分优秀!