我有一个带有类型List参数的方法的麻烦,继承自另一个(类型)类.
让我们保持简单:
public class B<T> {
public void test(List<Integer> i) {
}
}
Run Code Online (Sandbox Code Playgroud)
B类有一个无用的泛型T,而test()需要一个整数列表.
如果我这样做:
public class A extends B {
// don't compile
@Override
public void test(List<Integer> i) {
}
}
Run Code Online (Sandbox Code Playgroud)
我得到一个" 类型A的方法测试(列表)必须覆盖或实现超类型方法 "错误,这不应该发生.
但删除列表的类型有效...虽然它不依赖于类泛型.
public class A extends B {
// compile
@Override
public void test(List i) {
Run Code Online (Sandbox Code Playgroud)
并且还定义下面的无用通用以使用类型列表
public class A extends B<String> {
// compile
@Override
public void test(List<Integer> i) {
Run Code Online (Sandbox Code Playgroud)
所以我很无能,B的泛型应该对test()列表的类型没有影响.有没有人知道发生了什么?
谢谢