[英]Can a parent class have a field, whose generic type is that of the current descendant?
两个班:
Entity
(抽象类)Animal
( Entity
的孩子)一个接口:
public interface IPositionObserver<T extends Entity> {
public void onPositionChange(T entity, Vector2 from, Vector2 to);
}
我希望Entity
实现此接口,因此可以自动观察它的所有后代,但是我希望将T
解析为最派生的 class。 即,如果我创建Animal
的实例,我希望它 function 看起来像onPositionChange(Animal entity, Vector2 from, Vector2 to)
。
这可能吗?
是的。
class Parent<C extends Parent<C>> {
C field;
}
class Child extends Parent<Child> {
}
Child.field
的类型为Child
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.