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