java - 为什么选择 ResponseEntity是通用的吗?
问题描述
想象一下这个简单的控制器方法:
public ResponseEntity<?> findById(@Parameter(description = "id") @PathVariable String id) {
Optional<Model> model = repository.findById(id);
if(model.isEmpty()) {
return ResponseEntity.status(HttpStatus.NOT_FOUND)
.body("Model not found");
}
return ResponseEntity.status(HttpStatus.OK)
.body(model.get());
}
如果找到,则返回模型,否则返回错误字符串消息。这个案子可能比这更复杂。
所以我返回一个String
或一个Model
类型,它不能绑定到ResponseEntity
.
我的问题是为什么 spring 团队将这个类设计为泛型类型?还是我使用了错误的这个对象?
解决方案
当你定义你的 API 时,你定义了在操作正常的情况下你将返回的对象的类型,这是你应该在响应实体的通用类型中使用的对象。
如果你想返回不同的类型,你可以删除泛型并只返回一个 ResponseEntity 并添加你想要的任何对象
推荐阅读
- javascript - 如果邮件已发送,则显示弹出窗口(nodemailer)
- android - 多房间迁移导致android中的错误
- git - Eclipse中使用Git多开发者项目,如何处理需要不同资源的分支?
- python - 在python中检查回文数时运算符//的含义是什么
- c# - 有没有办法简化这个功能?
- reactjs - 当加载为真时,Mui 自动完成不显示加载微调器
- node.js - Netlify 上的 NextJS:部署没有成功;部署目录“out”不存在
- python - 每个用户“velocity_dif”大于 0 的次数
- python - pygame.sprite.spritecollide 只删除敌人
- vba - 在子表单中打开交叉表查询