当前位置: 代码迷 >> Android >> List,ArrayList函数返回时出错,求教大神解决方案
  详细解决方案

List,ArrayList函数返回时出错,求教大神解决方案

热度:60   发布时间:2016-04-28 06:20:09.0
List,ArrayList函数返回时出错,求教大神
有一个函数需要返回一个数组。
代码如下:

/*
 * 获取服务器订单 
 * @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);
  相关解决方案