gpt4 book ai didi

java - 返回类型 ResponseEntity 和 ResponseEntity 和 ResponseEntity 有什么区别
转载 作者:行者123 更新时间:2023-11-30 10:36:02 27 4
gpt4 key购买 nike

现在我需要我的 Controller 根据业务逻辑返回 2 种不同类型的对象,所以我的问题是我应该使用

ResponseEntity <?>

或者我应该使用:

ResponseEntity <Object>

这种返回类型有什么区别,我为什么要使用它们?

它是否对 Spring Controller 返回的 JSON 进行了任何更改?

我问的是返回类型,而不是输入参数。

我使用 Spring MVC 4。

最佳答案

把这个问题想成

ResponseEntity<?>

相当于

ResponseEntity<? extends Object>

SomeClass<String> 的实例火柴SomeClass<?>但不是 SomeClass<Object> .

我认为在 Java 中 List 不是 List 的子类型,而 String[] 实际上是 Object[] 的子类型是一种常见的误解。这就是泛型和数组不能很好混合的原因之一。 Java 中的数组是协变的,泛型不是,它们是不变的。

因此,总而言之,您可以使用 ResponseEntity<?>并像这样在你的 Controller 中使用它

if (somecondition)
return new ResponseEntity<Success>(HttpStatus.OK);
else
return new ResponseEntity<Error>(HttpStatus.CONFLICT);

关于java - 返回类型 ResponseEntity<?> 和 ResponseEntity<Object> 和 ResponseEntity<MyCustomClass> 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40799375/

27 4 0