2012-04-03 3 views
0

Я использую библиотеку Java с открытым исходным кодом, которая называется Weka в проекте Eclipse Indigo. Библиотека кажется немного устаревшей, поэтому Eclipse показывает мне тысячи предупреждений относительно кода. Типичным примером является:Как избежать использования @SupressWarnings?

ArrayList - это необработанный тип. Ссылки на шаблонного типа ArrayList < E> должны быть параметризованных

В отношении к линии, как это:

ArrayList t = new ArrayList(); 

быстрое решение для Eclipse означает, что я могу либо преобразовать код выше, чтобы использовать дженерики или что В качестве исправления я могу добавить аннотацию @SuppressWarnings 'rawtypes'.

Но оба эти исправления включают в себя внесение изменений в код проекта с открытым исходным кодом, и мне пришлось бы делать эти изменения несколько раз (сотни?) Раз.

Вместо этого может быть какой-то глобальный параметр для Eclipse (или компилятора Java?), Где я могу указать, что я не хочу, чтобы меня предупреждали о конкретном проекте?

+0

Когда я использую google, я получаю ... http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler% 2Fref-preferences-errors-warnings.htm –

+0

Спасибо Брайан. Я отредактировал этот вопрос, чтобы отразить тот факт, что я не беспокоюсь о одном предупреждающем сообщении, в частности - я бы хотел избежать всех их для конкретного проекта. – urig

ответ

1

Было высказано предположение, что вы просто отключите «оскорбительные» предупреждения через Window> Preferences, но это отключит их для всех проектов в вашей рабочей области, включая проекты, содержащие ваш собственный код Java 1.5 +. Это плохая идея, потому что вы должны обращать внимание на предупреждения, если они встречаются в вашем коде. (Если вы их игнорируете, вы можете получить непредвиденные исключения во время выполнения.)

Еще одна возможность - изменить настройки проекта, чтобы установить исходный уровень Java-компилятора на Java 1.4 или ранее. Вы должны только сделать это на проекте Weka. Проект, содержащий ваш код, должен использовать исходный уровень как минимум для Java 1.5 ... при условии, что вы используете дженерики.


Спасибо. Возможно, это не вызовет проблемы позже, когда я развожу проект на рабочий сервер под управлением JRE 1.6? Разве я не должен иметь там JRE 1.4?

Нет ... в течение нескольких причин:

  • Если вы не изменяете Weka, вы можете использовать оригинальные баночки и игнорировать любые сборки артефактов, созданных с помощью Eclipse.

  • Уровень источника и целевой уровень различны. Уровень источника говорит, какая версия языка Java должна соответствовать исходному коду. На целевом уровне указывается, какую версию формата classfile следует использовать. Вы можете заставить компилятор Java генерировать формат байт-кода Java 1.6 для исходного кода Java 1.4. (Но не наоборот).

  • Java 1.6 JRE с радостью будет запускать Java 1.4 JAR.

Кроме того, где я могу это сделать? Вы имеете в виду Project> Свойства> Компилятор Java> Уровень соответствия компилятора?

Да. Обратите внимание, что он позволяет вам указать исходный и целевой уровни независимо ... modulo ограничение, которое компиляторы Java допускают только определенные комбинации.

+0

+1, гораздо лучшее решение, чем отключение определенных предупреждений в среде IDE. – darrengorman

+0

Спасибо. Возможно, это не вызовет проблемы позже, когда я развожу проект на рабочий сервер под управлением JRE 1.6? Разве я не должен иметь там JRE 1.4? – urig

+0

Также, где я это делаю? Вы имеете в виду Project> Свойства> Компилятор Java> Уровень соответствия компилятора? – urig

1

Try Window-> Preferences, Java-> Compiler-> Errors/Warnings. Я вижу, что в нижней части находится раздел «Общие типы». Я не знаю, это именно то, что вы ищете, но из моего опыта это хорошее место, чтобы игнорировать определенные предупреждения Eclipse.

+0

+1, но из моего опыта это хорошее место, чтобы включить больше предупреждений. –

+0

Спасибо. Определенно вариант. Конечно, мне нужно нажать «Настроить параметры проекта ...» и выбрать мой проект Weka для работы. Но нижняя сторона заключается в том, что мне нужно пройти длинный список разных типов предупреждений и установить, что каждый из них игнорируется. Но громоздко. – urig

1

В Eclipse перейдите к Window-> Preferences-> Java-> Compiler-> Errors/Warnings-> Generic types здесь вы найдете категорию «Использование необработанного типа», которую вы можете установить как игнорировать, а не предупреждать.

4

Окно> Настройки> Java> Компилятор> Ошибки/предупреждения> Общие типы. В качестве альтернативы это можно установить в проекте по проектам (если у вас есть другие проекты в вашей рабочей области, которые вы хотите сохранить), щелкнув правой кнопкой мыши по проекту> Свойства> Java> Ошибки/Предупреждения> Отметьте «Включить специальные настройки проекта», и затем, как и раньше.

Смежные вопросы