Использование предупреждения о затмении "объявление поля скрывает другое поле или переменную"?
В 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), чтобы дополнительно включить / отключить ее в конструкторах и методах получения / установки, чтобы предотвратить ложные срабатывания.
Я бы сказал, что вы просто отключаете это предупреждение - оно, кажется, бесполезно в вашем соглашении. И неудивительно, что по умолчанию это игнорируется.
Я держу их в "Ошибка". Если у класса и его родителя оба поля с одинаковыми именами, я не хочу терять свое время, пытаясь выяснить, почему я, кажется, присваиваю значение полю, но оно никогда не меняется!