我已经看到很多Spring Controller程序实现的例子,它们使用ResponseEntity<?>
来返回具有特定状态代码和可选主体的HTTP响应。
ResponseEntity<?>
符号即使在官方的Spring教程中也存在,如下所示:Building REST services with Spring
使用ResponseEntity<?>
代替简单ResponseEntity
的原因是什么?
这与我之前的问题有点相关:SonarQube complains about using ResponseEntity with a wildcard
在What is a raw type and why shouldn't we use it?线程中有一些解释,但我想更多关注ResponseEntity类,它在Spring Controller中使用。
考虑以下代码段,其中somethingService
返回Optional
Something
类的@GetMapping
ResponseEntity<?> getSomething() {
return somethingService.getSomething()
.map(smth -> new ResponseEntity<>(smth, HttpStatus.OK))
.orElse(new ResponseEntity<>(HttpStatus.NOT_FOUND));
}
:
ResponseEntity(HttpStatus status)
即使我没有从编译器检查中获得任何利润,是否有任何理由留下通配符,因为ResponseEntity
参数化Object
{{1}}类?