2

问题本身可能无法准确表达我的意思,因此我将快速跳入代码。

var myClass:Class;

我用 myClass 存储 A 类定义了我的 A 类。

myClass = getDefinitionByName("myPackage.A") as Class;

问题是如何验证 myClass 是否存储了 A 类。以下代码段不起作用。

if(myClass == A){
  Alert.show("equal");
}

为什么这种比较会失败?

4

4 回答 4

3

试试这个:

按包名比较:

if(getQualifiedClassName(myClass) == getQualifiedClassName(A)){
      Alert.show("equal");
}
于 2012-09-12T06:50:08.930 回答
2

尝试

if(getQualifiedSuperclassName(ClassB) == getQualifiedClassName(ClassA))
{
      Alert.show("equal");
}
于 2012-09-12T09:00:06.790 回答
1

如果你有 A 类和 B 类B extends A,你可以使用:

var type:String = getQualifiedClassName(A);
for each (var object:Object in describeType(B)..extendsClass) {
    if (type == object.@type.toString())
        trace("Class B instead of A");
}
于 2012-09-12T09:01:44.257 回答
0

怎么样:

if(myClass is myPackage.A)
{
   Alert.show("equal");
}
于 2012-09-12T06:43:27.297 回答