我试图扩展具有泛型类型参数的泛型类与另一个具有泛型参数的泛型类,该泛型继超级泛型的类型化参数之后。
具有上界类型参数的超级泛型
public abstract class Cage<T extends Animal> {
protected Set<T> cage = new HashSet<T>();
public abstract void add(T animal);
public void showAnimals() {
System.out.println(cage);
}
}
我要使用特定的有界类型创建的泛型类,例如Lion
我尝试了以下代码,但出现错误类型参数Lion在令牌“ extends”上隐藏了Lion和Syntax类型的错误,预期
对于LionCage类中的add()方法,我得到了错误:LionCage类型的方法add(Lion)必须重写或实现超类型方法
LionCage 类的意思是 Cage<Lion extends Animal>
public class LionCage<Lion extends Animal> extends Cage<T extends Animal> {
@Override
public void add(Lion l) {
cage.add(l);
}
}
我的动物类及其子类Lion,Rat等在Animal.java中定义
public class Animal {
public String toString() {
return getClass().getSimpleName();
}
}
class Rat extends Animal {}
class Lion extends Animal {}
由于我遇到了错误,因此我猜测我所遵循的方法可能不正确。在那种情况下,是否有任何标准的方法可以在Java泛型中实现此方案?
ITMISS
相关分类