我可以达到该字段的ClassType,但是在ClassType之间没有相等的测试。
答案 0 :(得分:2)
ClassType
定义如下:
typedef ClassType = {> BaseType,
var kind : ClassKind;
var isInterface : Bool;
var superClass : Null<{ t : Ref<ClassType>, params : Array<Type> }>;
var interfaces : Array<{ t : Ref<ClassType>, params : Array<Type> }>;
var fields : Ref<Array<ClassField>>;
var statics : Ref<Array<ClassField>>;
//var dynamic : Null<Type>;
//var arrayAccess : Null<Type>;
var constructor : Null<Ref<ClassField>>;
var init : Null<TypedExpr>;
var overrides : Array<Ref<ClassField>>;
}
BaseType
(它继承自的)包含module
和name
字段,因此您应该能够检查interfaces
中每个项目的模块和名称名单。或者,您可以依靠Ref.toString()
返回完全限定名称:
for(interfaceRef in Context.getLocalClass().get().interfaces) {
if(interfaceRef.t.toString() == "flash.events.IEventDispatcher") {
return true;
}
}
return false;