生成 JSONObject 字符串键
Generify JSONObject string keys
我有使用 org.json.JSONObject
的迭代器
的现有代码
JSONObject obj = new JSONObject();
obj.put("key1", "value1");
obj.put("key2", "value2");
Iterator keys = obj.keys();
...
有编译警告
Iterator is a raw type. References to generic type Iterator<E> should be parameterized
我可以更新到通用版本:
Iterator<?> keys = obj.keys();
但是没有办法用 String
键 "generify" JSONObject
吗?
我找到 this answer 但它的建议没有编译
JSONObject<String,Object> obj=new JSONObject<String,Object>();
编辑
使用 Iterator<String> keys = obj.keys();
我收到类型安全警告:
Type safety: The expression of type Iterator needs unchecked conversion to conform to Iterator<String>
同样使用 Eclipse Infer 泛型不执行任何代码更改
您提供 link 的答案使用的 class 与您正在使用的答案不同。如果您查看 org.json.JSONObject
的 source,您会发现以下内容:
public Iterator<String> keys() {
return this.keySet().iterator();
}
这意味着您可以编写以下代码:
JSONObject obj = new JSONObject();
obj.put("key1", "value1");
obj.put("key2", "value2");
Iterator<String> keys = obj.keys();
while(keys.hasNext()){
System.out.println(keys.next());
}
它将生成以下输出:
key1
key2
我有使用 org.json.JSONObject
的迭代器
JSONObject obj = new JSONObject();
obj.put("key1", "value1");
obj.put("key2", "value2");
Iterator keys = obj.keys();
...
有编译警告
Iterator is a raw type. References to generic type Iterator<E> should be parameterized
我可以更新到通用版本:
Iterator<?> keys = obj.keys();
但是没有办法用 String
键 "generify" JSONObject
吗?
我找到 this answer 但它的建议没有编译
JSONObject<String,Object> obj=new JSONObject<String,Object>();
编辑
使用 Iterator<String> keys = obj.keys();
我收到类型安全警告:
Type safety: The expression of type Iterator needs unchecked conversion to conform to Iterator<String>
同样使用 Eclipse Infer 泛型不执行任何代码更改
您提供 link 的答案使用的 class 与您正在使用的答案不同。如果您查看 org.json.JSONObject
的 source,您会发现以下内容:
public Iterator<String> keys() {
return this.keySet().iterator();
}
这意味着您可以编写以下代码:
JSONObject obj = new JSONObject();
obj.put("key1", "value1");
obj.put("key2", "value2");
Iterator<String> keys = obj.keys();
while(keys.hasNext()){
System.out.println(keys.next());
}
它将生成以下输出:
key1
key2