[英]How to put List data with different generic type with same Return type?
我的問題是ClassB
是我必須返回的普通bean類(使用@ResponseBody
Json數據格式)簡單錯誤消息。 ClassA是一個Entity bean ,沒有設置器和獲取器方法將錯誤消息設置為fstList, fstListMap
。 如果fstListMap,errsecstMap
有任何替代解決方案或其他合並解決方案fstListMap,errsecstMap
Object返回公共Map Object。 如果任何變化只ClassA
bean是多變的 ,但ClassB
不改變。
@RequestMapping(value="getlistOfData",method=RequestMethod.GET)
@ResponseBody
public Map<String, List<ClassA>>
getListOfData(@RequestParam(value="param1")String
param1,@RequestParam(value="param2")int param2){
List<ClassA> fstList=new ArrayList<ClassA>();//ClassA is an hibernate Entity
Map<String, List<ClassA>> fstListMap=new HashMap<String, List<ClassA>>();
List<ClassB> errsecstList=new ArrayList<ClassB>();//It is simple Bean class
Map<String, List<ClassB>> errsecstMap=new HashMap<String, List<ClassB>>();
ClassB clB=new ClassB();
boolean isvalid=true;
try{
isvalid=newllbean.getisInvalidAge();//This value return drools (set in rule file)
if(isvalid){//if true then go to this condition
fstList=serviceClass.getfstList()
fstListMap.put("fstList", fstList);
System.out.println("fstList Size: "+fstListMap.size());
System.out.println("fstList : "+fstListMap);//Am getting this data
}else{
String errMessage=clB.setErrorMessage("Age Not valid...");
errsecstList.add(clB.getErrorMessage());
errsecstMap.put("errorMessage",errsecstList);
System.out.println("errMessage Size: "+errsecstMap.size());
System.out.println("errMessage : "+errsecstMap);//I am getting this value
}
}catch(Exception e){
System.out.println("Exception"+e);
}
return fstListMap;
}
如何返回errsecstMap?
沒有參數可errMessage
在ClassA
實體中設置errMessage
。 我想返回單個Map對象,如果滿足或不滿足條件。 有什么解決方案可以根據上述代碼返回通用Map Object來返回?
試試這個(這是沒有編譯)-
1)創建一個這樣的Response類-
import java.util.List;
public class ResponseClass<T> {
public String str;
public List<T> list;
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list;
}
}
2)像這樣修改您現有的課程-
@RequestMapping(value="getlistOfData",method=RequestMethod.GET)
@ResponseBody
public ResponseClass<T>
getListOfData(@RequestParam(value="param1")String
param1,@RequestParam(value="param2")int param2){
List<ClassA> fstList=new ArrayList<ClassA>();//ClassA is an hibernate Entity
ResponseClass<ClassA> responseA = new ResponseClass<>();
List<ClassB> errsecstList=new ArrayList<ClassB>();//It is simple Bean class
ResponseClass<ClassB> responseB = new ResponseClass<>();
ClassB clB=new ClassB();
boolean isvalid=true;
try{
isvalid=newllbean.getisInvalidAge();//This value return drools (set in rule file)
if(isvalid){//if true then go to this condition
fstList=serviceClass.getfstList()
responseA.setStr("fstList");
responseA.setList(fstList);
System.out.println("fstList Size: "+fstListMap.size());
System.out.println("fstList : "+fstListMap);//Am getting this data
return responseA;
}else{
String errMessage=clB.setErrorMessage("Age Not valid...");
errsecstList.add(clB.getErrorMessage());
responseB.setStr("errorMessage");
responseB.setList(errsecstList);
System.out.println("errMessage Size: "+errsecstMap.size());
System.out.println("errMessage : "+errsecstMap);//I am getting this value
return responseB;
}
}catch(Exception e){
System.out.println("Exception"+e);
}
}
顯然,可以根據您的用戶情況輕松優化上述代碼。 這是一個簡單的實現。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.