1

例如,我有多个这样的类:

MyClassA.propertyAlpha
MyClassB.propertyTango
MyClassC.propertyBravo
MyClassD.propertyBeta
MyClassE.propertyCharlie
MyClassF.propertyRoger
MyClassG.propertyWilco

我得到了一个上述类型之一的类的实例和一个静态属性的名称(不管为什么)。

如何仅使用该信息获取或设置静态属性(不管为什么)?

4

1 回答 1

3

您不能直接在实例上访问该值。它是其类的属性,因此必须对其进行访问。

有两种方法可以做到这一点。

要么使用该constructor属性:

function getStaticProperty( instance:Object, property:String ) : * {
    return instance.constructor[property];
}

或者使用getQualifiedClassNameandgetDefinitionByName来获取类,然后获取属性值:

function getStaticProperty( instance:*, property:String ) : * {
    var className:String = getQualifiedClassName( instance ).replace("::",".");
    var clazz:Class = getDefinitionByName( className ) as Class;
    return clazz[property];
}
于 2012-05-05T09:24:39.243 回答