这有点奇怪,但我需要知道特定类的所有子类。假设我有一个名为Shape的基类和3个实现它的子类(Circle, Triangle和Rectangle)。我想这样写:
public function getSubclasses(aClass : Class) : Vector.<Class>
{
//???
}
返回一个包含Circle, Triangle和Rectangle的向量。
不幸的是,不能指望每个子类在调用该函数之前至少实例化一次。
目前我需要手动将类添加到列表中,但这很容易出错(如果我忘记了),也不像上面提议的函数那样通用(因为我需要为每个我想要子类的类创建一个新列表)。
谢谢!
Flash中没有这样的内置函数。您可以使用反射来获得类的基类,但不能使用其他方式(参见flash.utils.describeType()
)。
@Laurent是对的。更进一步说,我想说这根本不可能。如果你有一个类,你可以判断它是否是另一个类的子类(通过实例化它),但是没有办法列出AS3中可用的类。