我重写了数组集合的addItem()函数,并且想检测添加的项是否实现了特定的接口。如何判断一个实例是否在ActionScript 3.0中实现了一个接口
以前我用is
运算符来检测类的类型,但现在我正在使用类的接口,我宁愿测试一下,看看对象是否实现了接口。
我希望我可以尝试将对象作为接口进行投射,看看它是不是null
。这是做这件事的最好方法吗?
我也可以创建一个新的addFunction()
,它只接受接口类型的对象。
我重写了数组集合的addItem()函数,并且想检测添加的项是否实现了特定的接口。如何判断一个实例是否在ActionScript 3.0中实现了一个接口
以前我用is
运算符来检测类的类型,但现在我正在使用类的接口,我宁愿测试一下,看看对象是否实现了接口。
我希望我可以尝试将对象作为接口进行投射,看看它是不是null
。这是做这件事的最好方法吗?
我也可以创建一个新的addFunction()
,它只接受接口类型的对象。
您仍然可以使用为来测试接口。
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library://ns.adobe.com/flex/halo" minWidth="1024" minHeight="768" creationComplete="application1_creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
public var test:TestInterface = new TestInterface() //implements ITestInterface
protected function application1_creationCompleteHandler(event:FlexEvent):void
{
trace(test is ITestInterface); //true
}
]]>
</fx:Script>
</s:Application>
要添加到乔尔的回答是:如果你想了解有关界面的详细信息类工具(和它的子类,父类,等等),该AS3Commons库有ClassUtils类,有很多的方便方法。
谢谢乔尔,对我很懒,但我想知道正确的方式去做,而不是找到有效的方法,但可能是不好的做法。 – robmcm 2009-09-04 09:15:09
不错的选择!你可以在标题的末尾添加“in AS3”吗? – 2009-09-04 13:22:12