Java: выделение всех производных элементов данных - PullRequest
13 голосов
/ 27 мая 2011

Существует ли какой-либо редактор для Java, способный выделить все унаследованные элементы?Похоже, что это очень полезная функция, помогающая понять структуру производного класса, который обращается к членам базового класса (классов).Я лично использую Intellij-IDEA, и если вы знаете какой-либо путь к этому, пожалуйста, поделитесь.Приветствуются все остальные редакторы!

Например, иногда вы можете увидеть следующий сценарий (и, пожалуйста, не считайте этот пример серьезным).

class A {
    ...
    protected int a;
    protected int x;
    ...
}

class B extends A {
    ...
    protected int b;
    void isntThatCoolIfSomeoneOverridesA() {
        a = b;
        x = b * b;
    }
    ...
}

ОБНОВЛЕНИЕ: расширен пример

Необходимо выделить a и x в классе B, так как оба являются унаследованными членами данных класса A.

Ответы [ 5 ]

2 голосов
/ 05 июня 2011

Затмение:

Можно выделить вызовы унаследованных методов, но не для полей. Вы можете включить это в диалоге настроек, в Java -> Редактор -> Цвет синтаксиса. В представлении списка элементов выберите Java -> Унаследованные вызовы методов, установите флажок Включить и измените способ выделения.

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

IntelliJ:

Если классы определены в одном и том же исходном файле, обычная подсветка переменных делает это. Вы можете выделить по требованию, используя Search -> Highlight Usages in File. Либо включите Settings -> Editor -> Highlight usages of element at caret), чтобы всегда выделять элемент, в котором находится курсор редактора.

Search -> Find Usages часто более полезен, поскольку он ищет в области (обычно в источниках проекта) использование переменной, поля, члена, класса ...

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

NetBeans: Щелчок правой кнопкой мыши -> Навигация -> Проверка иерархии
Вы также можете переключать логику - сверху вниз или снизу вверх

Опции без редактора:

  • JavaDoc - см. Ссылку на TREE
  • Также проверьте JBoss Tattletale .
0 голосов
/ 06 июня 2011

ответить на ваш вопрос;нет, я не знаю ни одной IDE, которая выделяет поля таким образом.

Я могу понять причину, по которой вам это понравится.Если вы используете IntelliJ и в поле удерживаете клавишу Ctrl и наводите курсор на поле, оно говорит вам, где оно определено.

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

0 голосов
/ 04 июня 2011

Зачем нужно хайлайт? Потому что мы можем читать код легче. Hightlight - это один из способов, но не лучший. Как вы не можете заставить всех использовать этот редактор, даже если он существует. Другой способ - использовать это и супер в самом коде, чтобы различать их при написании кода. Java настолько гибок, но мы можем создать свое собственное правило или собственное правило компании, чтобы другим было проще читать код. Когда я отлаживаю код, такой как a.b (f.c (), e.k ()), я действительно ненавижу входить и выходить или использовать watch для проверки значения ...

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