接口查询时,返回结果中部分结构不确定,需要用泛型返回结果,自己写了代码,能跑通,但是太难用,不优雅,怎么更优雅一点的使用方法返回泛型list结果
现在调用还要强转类型,指定结果类型,不好用,应该怎么改进啊
最好能达到下面这种调用方式,就美观多了
List<testClass> fsddList = H3Helper.getResultList<testClass>( "QueryDeptTable",
"QueryH3SystemTable", "D000867ProjManager", hashtable);
public class H3Helper {
public static <T> List<T> getResultList(Class<T> tClass, String actionName, String controller, String appCode, Hashtable<String, Object> hashParms) {
List<T> list = new ArrayList<T>();
Date nowDate = new Date();
String nowDateStr = DateUtils.parseDateToStr(nowDate, DateUtils.DATE_TIME_FORMAT_YYYY_MM_DD_HH_MI_SS_SSS);
Hashtable<String, Object> hashtable = new Hashtable<String, Object>();
hashtable.put("ActionName", actionName);
hashtable.put("Controller", controller);
hashtable.put("AppCode", appCode);
if (hashParms != null) {
for (Iterator<Entry<String, Object>> iterator = hashParms.entrySet().iterator(); iterator.hasNext();) {
Entry<String, Object> entry = iterator.next();
hashtable.put(entry.getKey(), entry.getValue());
}
}
String jsonStr = JSON.toJSONString(hashtable);
try {
String commonStr = doPost(jsonStr);
H3CommonResult data = JSON.parseObject(commonStr, H3CommonResult.class);
if (data.getSuccessful()) {
if (data.getReturnData() != null) {
Object bizArr = data.getReturnData().getBizObjectArray();
if (bizArr != null) {
list = JSON.parseArray(bizArr.toString(), tClass);
}
}
}
} catch (Exception ex) {
}
return list;
}
}
调用:
List<testClass> fsddList = (List<testClass>) H3Helper.getResultList(Class.forName("com.haitian.DataBI.helpers.testClass"), "AAAAA",
"BBBBB", "CCCCC", hashtable);
调用的时候达到这样的效果,使用起来就简单多了
List<testClass> fsddList = H3Helper.getResultList<testClass>( "QueryDeptTable",
"QueryH3SystemTable", "D000867ProjManager", hashtable);
你那个本身就可以使用 H3Helper.getResultList(testClass.class,"QueryH3SystemTable", "D000867ProjManager", hashtable);是你自己用复杂了