在Java中,是否可以让一个类扩展一个泛型类型,以便您可以将方法注入通过您的代码传递的任何类?(或者是否有任何其他方式将方法注入或覆盖现有类的方法?)
我所说的“扩展泛型类型”是指像这样(类“T extends GameObject”属于游戏,不得更改并且未知,因为在运行时从其他模块加载到游戏中):
class GameObject {
void moveForward(float amount) {
this.camera.z += amount;
}
}
class Extender<T extends GameObject> extends T {
void onTick(float time) {
this.camera.z -= amount;
}
}
onTick是由GameEngine调用的,通过这种方式,我可以将每个现有的游戏对象替换为在每个滴答声后向后移动的版本。
class Extender <T> extends T
起作用了,它也是无用的,因为你不能在你的类Extender
中使用任何成员字段或方法T
(因为T
可以是任何东西,没有成员被保证存在)。如果你实际上只是在问注入代码的问题,我建议你重新表达你的问题,避免误导性地认为你想扩展通用类型。 - us2012