乍一看,我认为以下是有道理的:
interface Test<T> {
T getValue(T n);
}
class Impl implements Test<Integer>{
public Integer getValue(Integer n){
return n;
}
}
并且它编译正确,所以一切看起来都很好。
但是后来我在擦除的上下文中考虑了更多,在我看来,测试接口被擦除为:
interface Test {
Object getValue(Object n);
}
那么Impl如何仍然能够实现Test呢?