Неиспользованные переменные и методы всегда должны быть нежелательными. Удаление их делает код чище и легче для чтения. Теперь по умолчанию Eclipse предупреждает вас о неиспользуемых закрытых переменных и методах, но не предупреждает вас (по умолчанию) о неиспользуемых аргументах метода.
Но в Eclipse есть настройка компилятора, которая может предупредить вас, если вы не используете аргумент в методе. Вы даже можете обрабатывать аргументы унаследованных методов, особенно полезно при использовании сторонних библиотек.
Настройте параметры компилятора
Чтобы получить предупреждения о неиспользованных аргументах:
- Перейдите в « Окно»> «Установки»> «Java»> «Компилятор»> «Ошибки / предупреждения» .
- Откройте раздел « Ненужный код» .
- Измените настройку параметра «Никогда не читается» с «Пропустить» на «Предупреждение»
- (Рекомендуется, но необязательно) Отмените выбор « Игнорировать переопределение и реализацию методов» . Я рекомендую отменить выбор этой опции. Вы можете оставить его выбранным, если хотите, но функция теряет свою полезность. Я обсуждаю этот вариант немного больше в следующем разделе.
Вот как должно выглядеть предпочтение:
И вот пример такого предупреждения. В этом примере аргумент емкости не используется, поэтому он помечается как предупреждение.
Какой самый простой способ избавиться от предупреждения? Ну, просто удалите аргумент, используя рефакторинг подписи метода изменения Eclipse . Это удалит аргумент из объявления метода и всех вызывающих методов за один раз. Однако, если вы не можете удалить аргумент из метода, прочитайте следующий раздел.
На старой кодовой базе вы можете сначала получить много предупреждений. Я бы обычно обрабатывал их на индивидуальной основе только для тех классов, над которыми я сейчас работаю, если только у команды нет определенного проекта / задачи по очистке. Просто нужно иметь в виду, особенно если вы делитесь настройками рабочего пространства в команде через SVN или аналогичные.
А как насчет сигнатур методов, которые нельзя изменить?
Когда вы отменили выбор « Игнорировать переопределение и реализацию методов», вы сказали Eclipse предупредить вас о неиспользуемых аргументах в реализованных / переопределенных методах. Это хороший показатель того, что ваш метод суперкласса / интерфейса передает больше, чем нужно (т.е. удаляет аргумент из сигнатуры метода), или что вы игнорируете что-то важное в контракте интерфейса (т.е. используете его где-то в вашем методе ).
Но иногда вы не можете удалить аргумент, потому что у вас нет контроля над унаследованными методами, особенно если вы реализуете / переопределяете метод сторонней библиотеки или если этот метод является частью более крупного фреймворка, который трудно изменить. В других случаях вам не понадобится аргументация в очень единичных случаях. Таким образом, вы не хотите, чтобы предупреждение появилось для них.
Вот почему вы можете использовать аннотацию компилятора @SuppressWarning, чтобы Eclipse не сообщал о предупреждении. Вот пример:
public String process(@SuppressWarnings("unused") int capacity, int max) {...}
Вы можете применить SuppressWarning к отдельному аргументу или целому методу. Я бы рекомендовал аннотировать только тот аргумент, который вы хотите игнорировать.
Eclipse позволяет легко добавлять аннотацию компилятора. Просто перейдите к предупреждению , нажмите Ctrl + 1 и выберите Add @SuppressWarning «unused» в «variable» (Quick Fix снова выполняет свою работу).
От http://eclipseone.wordpress.com/2010/04/27/get-warnings-about-unused-method-arguments-from-eclipse/