繁体   English   中英

父 class 可以有一个字段,其通用类型是当前后代的字段吗?

[英]Can a parent class have a field, whose generic type is that of the current descendant?

两个班:

  • Entity (抽象类)
  • AnimalEntity的孩子)

一个接口:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM