java - 具有泛型返回类型的覆盖方法中的参数导致覆盖失败
问题描述
我有以下四个课程:
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<>();
}
}
这会在注释 @Override 上产生编译错误:
“方法不会覆盖其超类中的方法”
如果方法的参数被删除,编译器不会抱怨。为什么它首先会产生错误,为什么当参数被删除时错误会消失?
解决方案
推荐阅读
- ruby-on-rails - 将 SVG 转换为 Base64 在本地和服务器上产生不同的结果
- javascript - 在 SPA 中的每次路由更改后重新运行脚本和重新渲染样式?(Vue / React / Angular)
- css - React/Material UI Table 未以粗体显示标题
- python - 如何在 MLP 算法中将字符串作为输入?
- android - 在主题和发件人名称中使用 Indy 从 Android 应用程序发送电子邮件时出现模棱两可的字符
- reactjs - React 自定义钩子 - 多个回调引用
- java - 在android开发中加载另一个活动时应用程序崩溃
- python - Django REST 框架:在 get_object_or_404 中使用“pk”
- c# - 如何在 OpenTK 中为 3D 立方体获取正确的名称堆栈?
- python - 无法通过请求抓取特定 YouTube 频道的视频