无论如何,是否可以为某个类的每个子类自动生成一个伴随对象?
例如,我有class Component[T]
一个val companion: CompType[T]
whereT
应该是子类。例如:class Transform extends Component[Transform]
。
有什么办法可以为每个子类生成伴随对象 - 虽然看起来很琐碎 - 以节省为我制作的每种组件输入对象定义?
编辑:
所有这一切的最终目标是一个实体系统。每个伴生对象都有一个唯一的整数(它从继承的特征中获取),可用于从组件数组中查找该特定类型的组件。例如,如果我想向实体添加一个 Transform 组件,我会调用:
addComponent(entity, Transform, new Transform(params))
然后,新Transform
对象将被放置在表示由 Transform 伴随对象提供的索引处的实体的组件数组中。但是由于伴生对象从它们继承的特征中获取索引,因此除了它们的名称之外,它们之间没有任何类型的差异。因此,为什么生成它们会很好。
很抱歉一开始就没有更具体。如果这仍然令人困惑,那很可能是我只是以完全错误的方式做这件事!如果您这么认为,请随时告诉我。