好吧,这就是我的意思。 我有一个类声明如下
public abstract class Agent<E extends Human> extends SuperAgent<E>{
}
我有
public class Soldier extends Agent<Platoon>
和
public class Platoon extends Human
有没有办法把人类变成士兵?或者对这两种类型使用方法 instanceof
?或者甚至在 Soldier
中有一个 Human
参数?
最佳答案
您必须区分类型层次结构:
SuperAgent<E> <= Agent<E extends Human> <= Soldier
Human <= Platoon
-
Is there a way to cast Human to Soldier?
它们不属于同一层次结构。
人类
不可能成为士兵
。 -
use the method instanceof for these two types?
您始终可以在对象和类之间使用
instanceof
。 -
or even have a Human parameter in Soldier?
可以,但您已经将参数固定为
Platoon
。您必须声明Soldier
,如下所示:public class Soldier<H extends Human> extends Agent<H>
我认为泛型的概念仍然让您感到困惑,您应该阅读 a little bit of documentation .
关于java - 我可以用泛型形式声明一个类,然后将子类转换为在 java 中声明为泛型的类型吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19604669/