【发布时间】:2010-12-16 12:45:03
【问题描述】:
我正在使用出色的 org.as3commons.reflect 和 org.as3commons.lang 库,但遇到了问题。我的一个类中有一个静态方法,需要对 its 类进行反射。反射库有一个 Type.forClass(clazz:Class) 静态方法,它显然需要一个 Class 变量。静态方法/代码中不允许使用 this 关键字,所以现在我需要知道是否有办法获取正在调用我的静态方法的类。
我需要在 Flash 播放器的非调试版本中工作的东西,所以任何 Error.getStackTrace() 技巧都不起作用。太糟糕了,普通 VM 中没有可用的堆栈跟踪。
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 和其他网站上搜索;总能得到关于静态成员、性能问题、一切的教程和技巧,除了我正在寻找的东西。
总的来说,我想在静态成员中缓存一些关于类的东西,以便在每次实例化类时节省不必要的工作。
任何帮助将不胜感激。
【问题讨论】:
标签: actionscript-3 class reflection static