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

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

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

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

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

public class Test {
   private String caption = null;

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

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

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

Ответы [ 3 ]

10 голосов
/ 08 ноября 2010

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

eclipse compiler settings

1 голос
/ 08 ноября 2010

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

0 голосов
/ 09 января 2011

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

...