首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未选中的调用将(E)添加为原始类型ArrayList和HashMap的成员

未选中的调用将(E)添加为原始类型ArrayList和HashMap的成员
EN

Stack Overflow用户
提问于 2014-07-03 16:28:23
回答 1查看 13.8K关注 0票数 5

我有以下使用org.json.simple创建JSON对象的函数。

代码语言:javascript
复制
public JSONObject createJSONRequest() {
    // /* Create JSON Objects */
    JSONObject jsonObject = new JSONObject();
    Map<String, String> map = new HashMap<String, String>();

    map.put(ACCESS_TOKEN_KEY, mAccessToken);            
    map.put(SESSION_ID_KEY, mSessionId);
    map.put(SNAPZ_ID_KEY, mSnapzId);
    map.put(EMAIL_KEY, mEmail);
    map.put(EMAIL_PWD_KEY, mEmailPwd);

    JSONArray list = new JSONArray();
    list.add(map);
    jsonObject.put("parameters", list);
    jsonObject.put("function", "verifyEmail");

    return jsonObject;
}

然而,当我使用lint checker时,我一直收到这个警告。

代码语言:javascript
复制
[unchecked] unchecked call to add(E) as a member of the raw type ArrayList
        list.add(map);
                ^
where E is a type-variable: E extends Object declared in class ArrayList

 warning: [unchecked] unchecked call to put(K,V) as a member of the raw type HashMap
        jsonObject.put("parameters", list);
                      ^
where K,V are type-variables:
    K extends Object declared in class HashMap
    V extends Object declared in class HashMap

warning: [unchecked] unchecked call to put(K,V) as a member of the raw type HashMap
        jsonObject.put("function", "verifyEmail");

我尝试使用泛型类型。HashMap使用泛型,但其他对象JSONObject JSONArray不使用泛型。

非常感谢您的建议,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-07-03 17:13:20

您会收到此警告,因为库在内部使用原始类型集合。要隐藏此警告,您可以使用@SuppressWarnings("unchecked")注释您的方法。

如果您想使用具有泛型支持json库。你可以去找Google GSOn。我自己也在很多项目中使用过它。它很简单,并且使用泛型集合。

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24548656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档