Использование предупреждения о затмении "объявление поля скрывает другое поле или переменную"?

В Eclipse есть параметр компилятора Java, который называется "объявление поля скрывает другое поле или переменную", для которого можно задать предупреждение / ошибка.

Насколько важно это предупреждение по вашему мнению?

Что является хорошим стандартным способом решения этой проблемы?

Пример кода, где это происходит:

public class Test {
   private String caption = null;

   public Test(String caption) { // here
     this.caption = caption;
   }
}

Я видел решения, в которых поле переименовывалось, то есть "fCaption", но это привело бы к тому, что автоматические методы получения / установки, которые могут быть сгенерированы, имели нечетные имена (getfCaption()). Не нечитабельно, но безобразно...

Редактировать: О да, есть возможность переименовать подпись метода Test(String caption_) или что-то подобное, но это в конечном итоге в Javadoc выглядит странно.

3 ответа

Решение

На мой взгляд, это очень полезная опция, и ее нужно включить, чтобы показывать предупреждение компилятора. Существует опция (в моей версии, по крайней мере, Eclipse 3.5.2, функция Java EE 1.2.2), чтобы дополнительно включить / отключить ее в конструкторах и методах получения / установки, чтобы предотвратить ложные срабатывания.

настройки компилятора Eclipse

Я бы сказал, что вы просто отключаете это предупреждение - оно, кажется, бесполезно в вашем соглашении. И неудивительно, что по умолчанию это игнорируется.

Я держу их в "Ошибка". Если у класса и его родителя оба поля с одинаковыми именами, я не хочу терять свое время, пытаясь выяснить, почему я, кажется, присваиваю значение полю, но оно никогда не меняется!

Другие вопросы по тегам