我有一段这样的代码:
@RequestMapping(value = "/find/{id}")
@GetMapping
public ResponseEntity<QuestionModel> find(@PathVariable("id") Long id) {
Question question = questionService.find(id);
QuestionModel questionModel = new QuestionModel(question);
**return new ResponseEntity<>(questionModel, HttpStatus.OK);**
}
我想知道那个与这个之间的区别:
@RequestMapping(value = "/find/{id}")
@GetMapping
public ResponseEntity<QuestionModel> find(@PathVariable("id") Long id) {
Question question = questionService.find(id);
QuestionModel questionModel = new QuestionModel(question);
**return new ResponseEntity(questionModel, HttpStatus.OK);**
}
答案 0 :(得分:0)
如果您不使用任何<...>
,则将使用原始类型。您应该从不使用原始类型,泛型是更安全的使用方式,并且可以防止由于编译器知识的增加而导致更多的错误。 Java仅出于向后兼容的原因
使用<>
(菱形运算符)代替<Foo>
(写出来)只是语法上的方便。编译器将钻石运算符替换为完全写出的类型(与 Java 10 中的var
相同)。参见What is the point of the diamond operator in Java 7?
// Are the same
List<Integer> values = new ArrayList<Integer>();
List<Integer> values = new ArrayList<>();
// Raw types, don't use if > Java 5
List values = new ArrayList();
// Assigning a raw-type to a generic variable, mixing both, don't use
List<Integer> values = new ArrayList();