如果我只拥有一个对象的实例,我可以调用其类的静态方法吗?为了好玩,让我说我不知道类的名称是什么,只知道静态方法的名称。
我可以这样做吗?我该怎么做?
答案 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