Статьи

Получите предупреждения о неиспользуемых аргументах метода из Eclipse для поддержания чистоты кода

Неиспользованные переменные и методы всегда должны быть нежелательными. Удаление их делает код чище и легче для чтения. Теперь по умолчанию Eclipse предупреждает вас о неиспользуемых закрытых переменных и методах, но не предупреждает вас (по умолчанию) о неиспользуемых аргументах метода.

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

Настройте параметры компилятора

Чтобы получить предупреждения о неиспользованных аргументах:

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

Вот как должно выглядеть предпочтение:

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

Какой самый простой способ избавиться от предупреждения? Ну, просто удалите аргумент, используя рефакторинг подписи метода изменения 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/