Как избежать предупреждений Eclipse при использовании унаследованного кода без дженериков?

Я использую JSON.simple для генерации вывода JSON от Java. Но каждый раз я называю jsonobj.put ("это", "это"), я вижу предупреждение в Eclipse:

Безопасность с точки зрения типов: помещенный метод (Объект, Объект) принадлежит необработанному типу HashMap. Ссылки на универсальный тип HashMap должны быть параметризованы

Чистая фиксация была бы то, если бы JSONObject были genericized, но так как это не, я не могу добавить универсальные параметры типа для фиксации этого. Я хотел бы выключить как можно меньше предупреждений, таким образом добавление "@SuppressWarnings ("неконтролируемый")" к большому количеству методов непривлекательно, но у меня есть какая-либо другая опция помимо выноса предупреждений?

7
задан skaffman 9 June 2010 в 20:41
поделиться

3 ответа

Вот один вариант. Это немного уродливо, но позволяет ограничить подавленное предупреждение только этой отдельной операцией.

Добавьте функцию, которая выполняет неконтролируемое приведение и подавляет предупреждения о ней:

@SuppressWarnings("unchecked")
private final static Map<Object,Object> asMap(JSONObject j)
{
  return j;
}

Затем вы можете вызывать ее без предупреждений компилятора:

asMap(jsonobj).put("this", "that");

Таким образом, вы можете быть уверены, что не подавляете какие-либо предупреждения, которые вы на самом деле хочу увидеть.

7
ответ дан 6 December 2019 в 14:02
поделиться

у вас могут быть настройки компилятора для каждого проекта, и вы можете изменить эти предупреждения на игнорировать .

4
ответ дан 6 December 2019 в 14:02
поделиться

Напишите несколько вспомогательных методов или классов-оболочек для библиотеки. Добавьте @SuppressWarnings ("unchecked") только к этим помощникам. Затем используйте помощников для взаимодействия с библиотекой.

4
ответ дан 6 December 2019 в 14:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: