无法将类和ArrayList对象传递给通用JSONParser

时间:2014-12-13 17:42:09

标签: java android generics arraylist gson

我正在尝试在我的Android应用程序中实现一个通用的jsonparser类,可以在整个应用程序中重用。到目前为止,我发现了一个简单的在线实现,但当我在我的JSONArray响应中调用它时,我无法传入我的类和ArrayList对象,因为它给出了如下所示的以​​下错误。 jsonParser的代码和我调用它的代码如下所示。我希望有人告诉我我错在哪里或者其他方面实施它...有一些资源。谢谢你的进步。

错误:

 Error:(111, 69) error: method jsonParser in class JSONParser3 cannot be applied to given types;
 required: JSONArray,Class,ArrayList<Class>
 found: JSONArray,Class<Countries>,List<Countries>
 reason: actual argument List<Countries> cannot be converted to ArrayList<Class> by method     
 invocation conversion    

国家模型:

public class Countries {

private String name;

private String dialCode;

private String code;

public Countries(){
    this("","","");
}

public Countries(String name, String dialCode, String code) {
    this.name = name;
    this.dialCode = dialCode;
    this.code = code;
}

public String getCountryName() {
    return name;
}

public void setCountryName(String name) {
    this.name = name;
}

public String getDialCode() {
    return dialCode;
}

public void setDialCode(String dialCode) {
    this.dialCode = dialCode;
}

public String getCode() {
    return code;
}

public void setCode(String code) {
    this.code = code;
}
}

JSONArray回复:

  public void onResponse(JSONArray jsonArray) {
       Countries countries = new Countries();
       countriesList = JSONParser3.jsonParser(jsonArray, Countries, countriesList)
  }

JSONParser代码:

 public class JSONParser3 {

public static List jsonParser(JSONArray jsonArray, Class myClass, ArrayList<Class> data){

    Gson gson = new Gson();
    JSONArray json = jsonArray;

    try{
        for (int i = 0; i < json.length(); i++){
            data.add(gson.fromJson(json.getString(i), myClass.getClass()));
        }
    }catch (JSONException e){
        e.printStackTrace();
    }

    return data;

}


}

0 个答案:

没有答案