我正在使用优秀的org.as3commons.reflect和org.as3commons.lang库,并遇到了麻烦。我在我的一个类中有一个静态方法,需要在的类中进行反射。反射库有一个Type.forClass(clazz:Class)静态方法,显然需要一个Class变量。有没有这个关键字允许在静态方法/代码,所以现在我需要知道是否有一种方法来获取我的静态方法被调用的类。静态方法的类反射
我需要一些能在非调试版本的Flash播放器中工作的东西,所以任何Error.getStackTrace()技巧都无法工作。太糟糕了,在正常的虚拟机中没有堆栈跟踪可用。
import org.as3commons.lang.ClassUtils;
import org.as3commons.reflect.Type;
protected static function doReflection(): void
{
var aClass: Class = ClassUtils.forInstance(this); // this not allowed in static methods
var ct: Type = Type.forClass(aClass);
// do stuff with type
}
我放弃了在Google和其他网站上搜索;总是最终得到有关静态成员,性能问题,一切除我正在寻找的一切有关的教程和技巧。总的来说,我想在静态成员中缓存一大堆关于类的东西,以便每次类实例化时都可以节省不必要的工作。
任何帮助,将不胜感激。
该静态方法在类的第一个实例化时调用,类似于protected static var _classInitialized:Boolean = init();好的,所以代码会变成类似“所有实例检查类是否已被初始化,如果没有,请调用受保护的静态函数init(this)”。希望有一个更直接的方法,但是,这将工作,谢谢。 – Atorian 2010-12-16 14:09:40