Suppress "Метод не переопределяет унаследованный метод, поскольку он является закрытым для другого пакета." - PullRequest
3 голосов
/ 27 сентября 2011

Как можно устранить следующую ошибку с помощью аннотации @SuppressWarning?

Метод Foo.trololo() не переопределяет унаследованный метод из Bar, поскольку он является закрытым для другого пакета

Насколько я могу судить, единственный способ - заключить весь метод в @SuppressWarning("all"), который я бы предпочел не делать.


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

Ответы [ 3 ]

6 голосов
/ 27 сентября 2011

Что это значит (вы, вероятно, уже знаете это)

Это означает, что, хотя ваш метод имеет то же имя, что и (не приватный) метод в суперклассе, он не отменяет этометод.

По поводу предупреждающего сообщения

Это предупреждение, относящееся к Eclipse.Ничто в спецификации языка не говорит о том, что должно выдавать это предупреждение.Это «особенность IDE», если вам так нравится.Поэтому нет «универсального» способа подавления сообщения.

(обратите внимание, например, что javac не выдает это предупреждение.)

Как отключить это предупреждение (в Eclipse)

(я знаю , вы этого не ищете, но некоторые другие посетители этой страницы могут!)

Чтобы отключить это предупреждение, перейдите на

Окно -> Предпочтения -> Java -> Компилятор -> Ошибки / предупреждения

и установите " Метод не переопределяет видимый метод пакета " на " Игнорировать ".

2 голосов
/ 27 сентября 2011

Это предупреждение означает, что у вас есть метод приватного пакета trololo в Bar и метод trololo в Foo, который расширяет Bar, но не входит в тот же пакет.

Если ваша цель - переопределить метод Bar.trololo с помощью Foo.trololo, то метод Bar.trololo должен быть защищен. Если ваша цель состоит в том, чтобы использовать два разных метода, было бы лучше назвать второй tralala, чтобы сделать его более понятным и избежать путаницы.

0 голосов
/ 10 мая 2016

Если вы хотите подавить предупреждение о конкретном проекте, в обозревателе пакетов Eclipse щелкните правой кнопкой мыши проект -> Свойства -> Компилятор Java -> Ошибки / предупреждения, затем установите флажок «Включить конкретные параметры проекта» -> Затемнение имен и конфликтыустановите "Метод не переопределяет видимый метод пакета" в "Игнорировать".Перестройте проект, и предупреждение исчезнет.Готово !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...