我在我的项目中使用java。当我尝试从json对象获取密钥时,我收到此警告:Type safety: The expression of type Iterator needs unchecked conversion to conform to Iterator
我试图通过@SupressWarning('unchecked')
进行修复,但eclipse仍会在文件中显示警告。我不知道出了什么问题。
public static HashMap<String, String> jsonToMap(final JSONObject jsonMap)
throws JSONException {
HashMap<String, String> map = new HashMap<String, String>();
Iterator<Object> keys = jsonMap.keys();
while (keys.hasNext()) {
String key = (String) keys.next();
String value = jsonMap.getString(key);
map.put(key, value);
}
return map;
}
答案 0 :(得分:1)
对于初学者来说,这个警告不会伤到你。它只是一个抬头 另外,请确保您具有正确的语法。它应该是:
@SuppressWarnings(&#34;未经检查&#34;)(您可以放置在方法级别或您想要压制的行的正上方。
其次,理解代码正在做什么可能很重要,因为你有什么工作,但它看起来有点奇怪。
警告基本上说你有一个未知类型的迭代器,并且你假设它是对象的迭代器。
然后在代码中将所有键转换为字符串。你也可以改为创建一个字符串迭代器并跳过演员表。
Iterator<String> keys = jsonMap.keys();
while (keys.hasNext()) {
String key = keys.next();
String value = jsonMap.getString(key);
map.put(key, value);
}
答案 1 :(得分:0)
JSONObject#Keys()
方法返回原始类型的Iterator
,并且您尝试将其分配给Iterator<Object>
的引用。请参阅JSONObject。