java中泛型类中的超类
这是我第一次来这里,但我尽力描述我的问题:
我有一个抽象类A
。我还有抽象类B
和C
扩展A
。然后我有扩展B
或C
的类
现在我有了一个泛型类,它只接受扩展A
的类。
(class XYZ<ABC extends A>…
)
现在我基本上想创建一个与泛型类一起工作的方法,但只与使用类扩展B
的实例一起工作
我试过这样的方法:
public void method(XYZ<B> t){}
不幸的是,这不起作用。IDE希望我使用t
类型或其他类型
现在是问题:
为什么这不起作用?它似乎不会引起任何问题,因为子类必须提供来自超类的所有方法
除了为B的每一个子类创建一个方法或者更改我想要使用的对象的类型之外,还有其他方法可以解决这个问题吗
示例代码:
public class main {
public static void main(String[] args) {
ArrayList<Abc> foo = new ArrayList<>();
xyz(foo);
}
private void xyz(ArrayList<B> abs){}
private static abstract class A{}
private static abstract class B extends A{}
private static abstract class C extends A{}
private static class Abc extends B{}
}
# 1 楼答案
试着这样做:
似乎是你的目标。更多信息,请查看here