поиск затененных полей в Java - PullRequest
1 голос
/ 05 мая 2011

наше Java-приложение имеет эту проблему с теневыми полями (подкласс объявляет те же имена полей, что и суперкласс) во многих классах. Приложение не будет правильно работать с нашим новым расширением, если какой-либо класс имеет затененные поля.

Есть ли какой-нибудь инструмент для быстрого сканирования?

Спасибо

Я просмотрел PMD и параметры в Eclipse, но они не очень помогают. Я не думаю, что PMD имеет возможность проходить через классы? Или я не прав?

Ответы [ 3 ]

3 голосов
/ 05 мая 2011

Вы можете написать собственное правило для pmd . Я не думаю, что какие-либо правила по умолчанию охватывают то, что вы хотите сделать.

3 голосов
/ 05 мая 2011

Eclipse имеет опцию, которая обычно отключена для проверки этой проблемы. Перейдите в «Окно»> «Установки», перейдите к «Java»> «Компилятор»> «Ошибки / предупреждения», затем разверните «Затенение имен и конфликты». Там есть несколько вариантов, которые помогут.

Я не уверен, что Netbeans имеет аналогичные настройки, но я думаю, что это так.

1 голос
/ 05 мая 2011

Ну, вы могли бы просто написать небольшое приложение, которое читает все классы Java и ищет деревья наследования, а затем проверяет, есть ли подклассы с этими теневыми полями.

Вы могли бы даже заставить приложение переименовать затененные поля, если вы хотите получить немного больше фантазии (не намного больше фантазии). Если вы решили попытаться переименовать их программно, вам нужно будет найти все ссылки в приложении и обновить их.

Я не знаю ни одного инструмента, который бы делал это из головы, но хороший поиск в Google мог бы сделать это для вас = P

Также проверьте свою IDE, чтобы увидеть, есть ли у нее возможности, к которым вы стремитесь.

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