有一个函数需要返回一个数组。
代码如下:
/*
* 获取服务器订单
* @param String url, HashMap<String,Object> data
* @return byte[]
*/
public static ArrayList<HashMap<String,Object>> getOrders(String url,HashMap<String,Object> param) throws Exception
{
String data = RedefineHttpRequest.HttpPost(url, param);
JSONObject msg = new JSONObject(data);
int error = msg.getInt("error");
if(error==1) //返回错误
{
android.util.Log.i("data",msg.getString("data"));
}
else if(error==0) //返回正确
{
JSONArray arr = msg.getJSONArray("data");
if(arr.length()==0) //结果为空
{
}
else
{
List<HashMap<String,Object>> res = new ArrayList<HashMap<String,Object>>(); //定义集合数组
for(int i=0;i<arr.length();i++)
{
HashMap<String,Object> map = new HashMap<String,Object>();
JSONObject order = arr.getJSONObject(i); //取得每一个订单
map.put("order_id", order.getInt("order_id"));
map.put("goods_name",order.getString("goods_name"));
map.put("amount", order.getDouble("amount"));
res.add(map); //添加到集合数组
}
android.util.Log.i("orders",""+res);
return res; //提示返回的数据类型错误
}
}
}
eclipse报错说返回类型错误。
为什么定义的函数要求返回ArrayList<HashMap<String,Object>>,内部处理的时候声明的变量是List<HashMap<String,Object>> res = new ArrayList<HashMap<String,Object>>();
ArrayList不是List的子类吗,为什么返回会报错说类型错误呢???
------解决方案--------------------
/*
* 获取服务器订单
* @param String url, HashMap<String,Object> data
* @return byte[]
*/
public static List<HashMap<String,Object>> getOrders(String url,HashMap<String,Object> param) throws Exception
{
String data = RedefineHttpRequest.HttpPost(url, param);
JSONObject msg = new JSONObject(data);
int error = msg.getInt("error");
if(error==1) //返回错误
{
android.util.Log.i("data",msg.getString("data"));
}
else if(error==0) //返回正确
{
JSONArray arr = msg.getJSONArray("data");
if(arr.length()==0) //结果为空
{
}
else
{
List<HashMap<String,Object>> res = new ArrayList<HashMap<String,Object>>(); //定义集合数组
for(int i=0;i<arr.length();i++)
{
HashMap<String,Object> map = new HashMap<String,Object>();
JSONObject order = arr.getJSONObject(i); //取得每一个订单
map.put("order_id", order.getInt("order_id"));
map.put("goods_name",order.getString("goods_name"));
map.put("amount", order.getDouble("amount"));
res.add(map); //添加到集合数组
}
android.util.Log.i("orders",""+res);