获取类中的所有静态变量

1 static properties class actionscript-3

我有这个ObjectType类,它是一个类来帮助我做这样的事情:

object.type = ObjectType.TWO

//ObjectType.as
package
{
    public class ObjectType
    {
        public static var ONE:String = "one";
        public static var TWO:String = "two";
        public static var THREE:String = "three";

        public function ObjectType()
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

假设我正在创建一个新类,我需要一个名为type的属性.在该属性集函数中,我想确保它的值是ObjectType变量之一.我怎样才能做到这一点?

public function set type(value:String):void 
{
    for (var o:Object in ObjectType) {
        if (value == o)
            this._type = value;     
        } else {
            //error
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Pat*_*ick 6

没有性能感知但没有修改任何东西你可以使用describeType函数来检查静态字段并获取值:

function valueInClass(clazz:Class, value:*):Boolean {
 return describeType(clazz).variable.(clazz[@name.toString()] == value).length() != 0
}

public function set type(value:String):void 
{
 if (valueInClass(ObjectType, value)) {
  this._type = value;     
 } else {
  //error
 }
}
Run Code Online (Sandbox Code Playgroud)