Java 未经检查的转换

Java 未经检查的转换,java,android,json,iterator,Java,Android,Json,Iterator,我不想压制警告。是否有其他方法来处理此警告 “迭代器类型的表达式需要未经检查的转换以符合迭代器” Iterator it=schemaJSON.getJSONObject(“body”).keys(); 我认为keys()返回的是一个迭代器实例,而不是迭代器,因此您要么离开字符串,要么只接受警告;-) 您可以在这里找到您的答案: Iterator it=schemaJSON.getJSONObject(“body”).keys(); while(it.hasNext()) { String ne

我不想压制警告。是否有其他方法来处理此警告

“迭代器类型的表达式需要未经检查的转换以符合迭代器”

Iterator it=schemaJSON.getJSONObject(“body”).keys();

我认为
keys()
返回的是一个
迭代器
实例,而不是
迭代器
,因此您要么离开
字符串
,要么只接受警告;-)

您可以在这里找到您的答案:

Iterator it=schemaJSON.getJSONObject(“body”).keys();
while(it.hasNext())
{
String next=(String)it.next();
...

您无法避免此警告,因为android
JSONObject#keys()
返回一个“原始”迭代器
。但是您可以使用
@SuppressWarnings
注释来抑制警告:

@SuppressWarnings("unchecked")
Iterator<String> it = schemaJSON.getJSONObject("body").keys();
@SuppressWarnings(“未选中”)
迭代器it=schemaJSON.getJSONObject(“body”).keys();

如果您只想删除警告

“迭代器类型的表达式需要未经检查的转换以符合迭代器”

那么这样做,

Iterator<String> it =  (Iterator<String>)schemaJSON.getJSONObject("body").keys();
Iterator it=(Iterator)schemaJSON.getJSONObject(“body”).keys();
但这将导致新警告,但旧警告将被删除

类型安全:未选中从迭代器到迭代器的强制转换

用于删除所有警告

Iterator<?> it = schemaJSON.getJSONObject("body").keys();    
while(it.hasNext())
{
    String nextElement = (String) it.next();
Iterator it=schemaJSON.getJSONObject(“body”).keys();
while(it.hasNext())
{
String nextElement=(String)it.next();

@Nfear请接受Ben在年提出的答案,他是第一个指出解决方案的人……这是所有DUP中最好的答案。我来这里是想知道为什么会有警告,而不仅仅是如何抑制它。
Iterator<String> it =  (Iterator<String>)schemaJSON.getJSONObject("body").keys();
Iterator<?> it = schemaJSON.getJSONObject("body").keys();    
while(it.hasNext())
{
    String nextElement = (String) it.next();