我有使用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();
但是没有办法用JSONObject
键来“生成” String
吗?
我发现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泛型不执行任何代码更改
答案 0 :(得分:1)
您提供的链接答案所使用的类别与您使用的类别不同。如果您查看#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
using namespace sf;
int main(){
RenderWindow window(VideoMode(200, 300), "11");
window.display();
return 0;
}
的{{3}},则会发现以下内容:
org.json.JSONObject
这意味着您可以编写以下代码:
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());
}