java将多个方法组合成一个通用方法
如果我有很多这样的方法,有没有一种方法可以优化它,使它成为一个单一的函数
或者有其他更好的选择,我可以让它更通用
public List<Address> getAddressList(String response) {
List<Address> AddressList = new ArrayList<Address>();
if (response != null && response.length() > 0) {
try {
Gson gson = new Gson();
Type collectionType = new TypeToken<List<Address>>(){}.getType();
AddressList = gson.fromJson(response, collectionType);
} catch (IllegalStateException ex) {
} catch (Exception ex) {
}
}
return AddressList;
}
public List<Tweet> getTweetList(String response) {
List<Tweet> tweetList = new ArrayList<Tweet>();
if (response != null && response.length() > 0) {
try {
Gson gson = new Gson();
Type collectionType = new TypeToken<List<Tweet>>(){}.getType();
tweetList = gson.fromJson(response, collectionType);
} catch (IllegalStateException ex) {
} catch (Exception ex) {
}
}
return tweetList;
}
# 1 楼答案
要从this here question复制axtavt的答案,请执行以下操作:
如果不将
T
(作为Class<T>
)的实际类型传递给您的方法,则无法执行此操作但是如果显式地传递它,您可以为
List<T>
创建一个TypeToken
,如下所示:另请参见:
所以,为了回答你的问题,你可以这样做:
编辑:尝试执行代码
我通过以下小测试尝试了这段代码,该测试只需创建一个包含几个地址的列表:
结果是:
我在测试项目中创建了自己的Address类,因此使用了gson。上述输出中的地址