Maybe it has something to do with type erasure. This is valid Java, it just gives you a warning:
abstract class Foo {
public abstract void method(List<String> xs);
}
class Bar extends Foo {
@Override
public void method(List xs) {
}
}
The raw type List
is compatible with List<String>
.