[英]Java return ResponseEntity of two different types
嘗試在 catch 塊中返回錯誤的請求錯誤代碼,否則返回一個集合。 不確定如何設置方法返回類型來處理兩者。
粗略的偽代碼:
public ResponseEntity</*what goes here*/> getCollection() {
try {
return ResponseEntity.ok().body(someCollection);
} catch(SomeException e) {
return new ResponseEntity<String>(HttpStatus.BAD_REQUEST);
}
}
簡單地假設我可以設置一個泛型類型來處理這兩種返回類型,我的方法是否不正確?
使用javax.ws.rs.core.Response
作為返回類型。 entity
可以是 JSON 對象
ResponseBuilder rb = Response.ok(entity);
return rb.build();
同樣,您可以使用正確的錯誤消息在 catch 塊中構建實體 JSON。
或者
通過擴展javax.ws.rs.WebApplicationException
創建自定義類。
在你的情況下,我會這樣做:
public ResponseEntity<Object> getCollection() { // -> "Object is added between "<>"
try {
return ResponseEntity.ok().body(someCollection);
} catch(SomeException e) {
return new ResponseEntity<>(HttpStatus.BAD_REQUEST); // -> "String" is removed between "<>"
}
}
Object
是所有類的父類,Java 具有推斷類型的能力。 由於這種能力, body(someCollection)
也將作為ResponseEntity<Object>
類型和new ResponseEntity<>(HttpStatus.BAD_REQUEST)
body(someCollection)
返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.