如何判断实例是否在ActionScript 3.0中实现了接口

时间:2009-09-03 17:28:06

标签: flex actionscript-3 air

我正在覆盖数组集合的addItem()函数,我想检测添加的项是否实现了特定的接口。

以前我使用is运算符来检测类类型,但是现在我正在使用类的接口,我宁愿测试该对象是否实现了接口。

我希望我可以尝试将对象转换为接口,看看它是否不是null。这是最好的方法吗?

我也可以创建一个只接受接口类型对象的新addFunction()

2 个答案:

答案 0 :(得分:13)

您仍然可以使用 来测试界面。

<?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>

答案 1 :(得分:3)

添加到Joel的答案:如果您想了解有关类实现的接口的更多信息(及其子类,父类等),AS3Commons库有一个ClassUtils类,一些方便的方法。