Подтвердить что ты не робот

Тип Предупреждение о безопасности с JTON Iterator

Моя проблема связана с получением Iterator из JSONObject.

Ошибка генерации кода в его простейшей форме:

String json = client.retrieveList();
JSONObject jsonList = new JSONObject(json);
Iterator<String> i = jsonList.keys();

while(i.hasNext())
{
    String next = i.next();
    JSONArray jsonArray = jsonList.getJSONArray(next);
    // Do stuff with jsonArray, example: jsonArray.getString(0), jsonArray.getString(1);
}

Точное предупреждение: Тип безопасности: выражение типа Iterator нуждается в необработанном преобразовании, чтобы соответствовать Iterator

Итак, вопрос в том, как я могу искоренить это предупреждение?

Большое спасибо!

4b9b3361

Ответ 1

Я понимаю, что это старый поток, но для будущих поисковиков...

вы также можете вывести общий тип и применить возвращаемые методы итератора...

Iterator<?> i = jsonList.keys();

while(i.hasNext())
{
    String next = (String) i.next();
    ...

Ответ 2

Когда вы смешиваете свой код со старыми устаревшими API-интерфейсами, вы можете получить такие предупреждения. Если вы действительно хотите "искоренить" предупреждение, вы можете использовать аннотацию SuppressWarnings. Хорошая практика оставить комментарий рядом с подавленным предупреждением. В вашем случае это может выглядеть так:

@SuppressWarnings("unchecked") //Using legacy API
Iterator<String> i = jsonList.keys();

Ура!