これは、ジェネリックスと、定義された型を使用するように子クラスを拡張する方法の問題です。あるクラスから別のクラスにジェネリック型を渡す?
ジェネリックスを介して渡されるデータのタイプを定義するクラスAPIResponseがあります。このクラスには、メッセージなどのその他の詳細や、RESTサービスを呼び出すUIに渡すエラーも格納されます。
指定したタイプのAPIResponseEntityのインスタンスを作成しようとすると、エラーが発生します。ここでジェネリックを正しく使用していない可能性があります.APIResponseEntityに返されるデータの種類を渡す方法を教えてください.APIResponseEntityは最終的にAPIResponseで使用できます。
public class APIResponseEntity<T> extends ResponseEntity<APIResponse<T>> {
public APIResponseEntity(HttpStatus pStatusCode) {
super(pStatusCode);
}
public APIResponseEntity(HttpStatus pStatusCode, MultiValueMap<String, String> pHeaders) {
super(pHeaders, pStatusCode);
}
public APIResponseEntity(HttpStatus pStatusCode, APIResponse<T> pBody) {
super(pBody, pStatusCode);
}
public APIResponseEntity(HttpStatus pStatusCode, APIResponse<T> pBody, MultiValueMap<String, String> pHeaders) {
super(pBody, pHeaders, pStatusCode);
}
}
@JsonPropertyOrder({ "status", "error", "data", "messages" })
public final class APIResponse<T> {
private APIResponseStatus _status;
private T _data;
private APIError _error;
private List<APIMessage> _messages;
public APIResponse() {
super();
_messages = new ArrayList<>();
}
public APIResponse(T pData) {
this();
_status = APIResponseStatus.OK;
_data = pData;
}
public APIResponse(APIError pError) {
this();
_status = APIResponseStatus.ERROR;
_error = pError;
}
public APIResponseStatus getStatus() {
return _status;
}
public void setStatus(APIResponseStatus pStatus) {
_status = pStatus;
}
public Object getData() {
return _data;
}
public void setData(T pData) {
_data = pData;
}
public APIError getError() {
return _error;
}
public void setError(APIError pError) {
_error = pError;
}
public List<APIMessage> getMessages() {
return _messages;
}
public void setMessages(List<APIMessage> pMessages) {
_messages = pMessages;
}
private void addMessage(APIMessageStatus pMessageStatus, String pMessage) {
_messages.add(new APIMessage(pMessageStatus, pMessage));
}
public void addMessageInfo(String pMessage) {
addMessage(APIMessageStatus.INFO, pMessage);
}
public void addMessageWarning(String pMessage) {
addMessage(APIMessageStatus.WARNING, pMessage);
}
public void addMessageError(String pMessage) {
addMessage(APIMessageStatus.ERROR, pMessage);
}
私は、ジェネリック
@RequestMapping(value = "/banks", method = RequestMethod.GET)
public APIResponseEntity<List<Bank>> getBanks(WebRequest pWebRequest) {
IUser user = getUser(pWebRequest);
BankCriteria criteria = new BankCriteria();
List<Bank> banks= _bankService.getBanks(user, criteria);
APIResponse<List<Bank>> response = new APIResponse<>(banks);
APIResponseEntity<List<Bank>> entity = new APIResponseEntity<>(HttpStatus.OK, banks); // errror , cannot infer type arguments for APIResponseEntity
return entity;
}
Springフレームワークからその 'ResponseEntity'ですか?たぶん、春や何かで質問にタグを付けることを検討してください... –