调用只有一个实例的类的静态方法

时间:2009-07-27 21:29:41

标签: flex actionscript-3 actionscript

如果我只拥有一个对象的实例,我可以调用其类的静态方法吗?为了好玩,让我说我不知道​​类的名称是什么,只知道静态方法的名称。

我可以这样做吗?我该怎么做?

3 个答案:

答案 0 :(得分:7)

您可以使用Object的构造函数属性来获取对该对象的类对象的引用,然后可以从该类对象中调用静态变量

    package{
        import flash.display.Sprite;

        public class Test extends Sprite{

            public function Test(){
                var variable : A = new A();
                trace((variable as Object).constructor.a());

            }
        }
    }
    class A{
       static function a() : String{
           return "test";
       }
    }

答案 1 :(得分:5)

有一种更简单的方法,但这假定存在静态函数。

var myclass:Class = getDefinitionByName("MyClass") as Class;
myclass["myStaticMethod"]();

令我惊讶的是这种语法有效。

答案 2 :(得分:1)

通过它的实例获取类引用。

var className:string = getQualifiedClassName(object); //returns the class name    
var classObj:Class = getDefinitionByName(className) as Class; //get a Class object

另见 - How to get type of variable? and instantiate it?