小编Lam*_*ora的帖子

具有泛型返回类型的override方法中的参数会导致覆盖失败

我有以下四个班级:

public interface Account {}

public class SavingsAccount implements Account {}

public abstract class Parent {

    protected abstract <T extends Account> List<T> getAccounts(List<String> ids);
}

public class Child extends Parent {

    @Override
    protected List<SavingsAccount> getAccounts(List<String> ids) {
        return new ArrayList<>();
    }
Run Code Online (Sandbox Code Playgroud)

}

这会在注释@Override上产生编译错误:

"方法不会覆盖其超类中的方法"

如果删除方法的参数,编译器不会抱怨.为什么它首先产生错误,为什么在删除参数时错误会消失?

java generics

5
推荐指数
0
解决办法
45
查看次数

标签 统计

generics ×1

java ×1