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

jed*_*ikb 2 apache-flex actionscript actionscript-3

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

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

小智 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";
       }
    }
Run Code Online (Sandbox Code Playgroud)


lou*_*ork 5

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

var myclass:Class = getDefinitionByName("MyClass") as Class;
myclass["myStaticMethod"]();
Run Code Online (Sandbox Code Playgroud)

这种语法有效使我感到惊讶。