java - 创建基本控制器时无法使用泛型
问题描述
我想用这样的通用创建一个基本控制器
@RestController
public class BaseController<T extends BaseEntity, S extends BaseServiceI<T, D extends BaseDao<T>>> {
@Autowired
private HttpServletRequest mRequest;
@Autowired
private HttpServletResponse mResponse;
@Autowired
private S service;
但正如你在这张图片中看到的,IDEA 有一个编译错误。
有谁知道问题是什么?这是“BaseService”的代码,没问题
public interface BaseServiceI<T, V extends BaseDao<T>> {
我接受了您(@Piotr Żmudzin)的更改,它对我有用,非常感谢!
但是当我使用这种方式获取服务实例时会引起另一个问题。这是获取实例的错误方式吗?@Piotr Żmudzin
public class ProjectInfoController extends BaseController<ProjectInfo, ProjectInfoServiceI, ProjectInfoDao> {
问题:</p>
Consider marking one of the beans as @Primary, updating the consumer to accept multiple beans, or using @Qualifier to identify the bean that should be consumed
[2020-12-15 22:35:09:719] Failed to read the entry class, please make sure the accuracy of the registration certificate!Error creating bean with name 'baseController': Unsatisfied dependency expressed through field 'service'; nested exception is
解决方案
您的类型参数不正确,请更改它们
从:
<T extends BaseEntity, S extends BaseServiceI<T, D extends BaseDao<T>>>
至:
<T extends BaseEntity, S extends BaseServiceI<T, D>, D extends BaseDao<T>>
推荐阅读
- css - 为什么我的 React 应用程序中只有一部分 TailwindCSS 类呈现?
- powershell - 纱线已安装但不起作用。命令被识别,但没有纱线命令做任何事情。Windows Powershell
- c - 如何释放未使用 malloc 调用的结构?
- c++ - MFC C++:如何将某个文件实际保存到系统中,而不仅仅是打开另存为对话框
- excel - 如何在 Excel 中对多个条件进行索引匹配?
- java - 如何关闭spring boot嵌入式服务器
- laravel - Laravel - 根据请求规则中的条件进行验证
- java - 在 Java 中使用数组构建双端队列(使用泛型)
- sql - 仅从 sql 中的地址获取邮政编码
- collections - 如何一页一页地显示收藏列表中的所有前 1 个产品?