我有一個類將包含要發送到UI的響應。藍圖是:類中的嵌套通用多態返回類型
class Response<T extends CustomObject> {
private String var1;
private String var2;
private List<T> custom; (eg. customOne, customTwo)
}
我能有這樣的正在擴大CustomObject並根據該響應類將有不同的customObject列表自定義對象不同的對象。
應用服務邏輯後,我得到一個原始響應,並基於自定義對象嘗試以不同方式進行解析。
CusomOne和CustomTwo將具有不同的結構爲:
class CustomOne extends CustomObject {
private String v1;
}
class CustomTwo extends CustomObject {
private String v2;
}
我有一個抽象的解析函數將基於該被拾取的對象被調用。該功能定義爲:
public abstract ResponsePayLoad<? extends CustomObject> parseResponse(String response);
ReponsePayLoad是另一個具有其他字段(包括CustomObject)的類。類ResponsePayLoad的藍圖是:
class ResponsePayLoad<T extends CustomObject> {
private String varX;
private List<T> value;
}
兩個customObjects解析功能將是這樣的:
public ResponsePayLoad<customOne> parseResponse(String response){
CustomOne one = ; // parsingLogic
return one;
}
public ResponsePayLoad<customTwo> parseResponse(String response){
CustomTwo two = ; // parsingLogic
return two;
}
在我的業務邏輯,當我寫的代碼如下:
ResponsePayLoad<CustomObject> responseObj = parseResponse(response);
我需要將它轉換爲我不想要的ResponsePayLoad。
任何人都可以告訴我如何跳過使用「?」在抽象函數中仍然保持相同的邏輯?此外,我不想像上面定義的那樣類型化。任何幫助,將不勝感激。