Spring ResponseEntity:使用构造函数还是静态生成器?

Eri*_*ria 5 java spring spring-boot

在Spring Boot RestController中,我使用springframework类ResponseEntity返回端点调用的响应。

最近,我发现有两种方法可以实例化此类。

使用构造函数:

response = new ResponseEntity<MyDto>(myDto, myHeaders, HttpStatus.OK);
Run Code Online (Sandbox Code Playgroud)

使用静态生成器:

response = ResponseEntity.ok().headers(myHeaders).body(myDto);
Run Code Online (Sandbox Code Playgroud)

结果实例接缝是相同的。

我想知道每种技术的优缺点是什么? 在哪种情况下,我应该优先使用其中一种?

小智 6

使用构造函数,您必须提前构造其参数,而使用构建器,您可以通过一个流畅的语句来完成此操作。

// constructor
MultiValueMap<String, String> headers = ...;
ResponseEntity<String> resp = new ResponseEntity(headers, HttpStatus.OK);

// builder
ResponseEntity<String> resp = ResponseEntity.ok()
    .header("header1", "value1")
    .header("header2", "value2")
    .build();
Run Code Online (Sandbox Code Playgroud)

此外,对于具有一长串参数的构造函数,很难了解每个参数的语义。在这种情况下,我更喜欢建筑商。


Eri*_*ria 3

所以答案似乎是“你可以根据你的个人代码偏好来选择其中之一”