例如,我有多个类,如:
MyClassA.propertyAlpha
MyClassB.propertyTango
MyClassC.propertyBravo
MyClassD.propertyBeta
MyClassE.propertyCharlie
MyClassF.propertyRoger
MyClassG.propertyWilco
我得到一个上述类型之一的类的实例和一个静态属性的名称(无关紧要的原因)。
如何使用该信息获取或设置静态属性(无关紧要)?
答案 0 :(得分:3)
您无法直接在实例上访问该值。它是它的类的属性,因此必须访问它。
有两种方法可以做到这一点。
使用constructor
属性:
function getStaticProperty( instance:Object, property:String ) : * {
return instance.constructor[property];
}
或者使用getQualifiedClassName
和getDefinitionByName
获取课程,然后获取属性值:
function getStaticProperty( instance:*, property:String ) : * {
var className:String = getQualifiedClassName( instance ).replace("::",".");
var clazz:Class = getDefinitionByName( className ) as Class;
return clazz[property];
}