问题本身可能无法准确表达我的意思,所以我会很快跳到代码中。
var myClass:Class;
我的A类定义了myClass,存储了A类。
myClass = getDefinitionByName("myPackage.A") as Class;
问题是如何验证myClass是否存储了A类。以下代码段不起作用。
if(myClass == A){
Alert.show("equal");
}
为什么这种比较会失败?
答案 0 :(得分:3)
试试这个:
按包名比较:
if(getQualifiedClassName(myClass) == getQualifiedClassName(A)){
Alert.show("equal");
}
答案 1 :(得分:2)
尝试
if(getQualifiedSuperclassName(ClassB) == getQualifiedClassName(ClassA))
{
Alert.show("equal");
}
答案 2 :(得分: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");
}
答案 3 :(得分:0)
怎么样:
if(myClass is myPackage.A)
{
Alert.show("equal");
}