Подтвердить что ты не робот

Java: выделение всех полученных данных

Есть ли какой-нибудь редактор для 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;
    }
    ...
}

UPDATE: расширен пример

Использование a и x в классе B должно быть выделено, потому что оба являются унаследованными элементами данных класса a.

4b9b3361

Ответ 1

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

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

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

Ответ 2

Eclipse:

Можно выделить вызовы унаследованных методов, но не для полей. Вы можете включить это в диалоговом окне "Настройки" в разделе "Java" → "Редактор" → "Раскраска синтаксиса". В представлении списка элементов выберите Java → Inherited invotations метода, установите флажок Включить и отредактируйте, как он должен быть выделен.

Ответ 3

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

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

  • JavaDoc - см. ссылку TREE
  • Также проверьте JBoss Tattletale.

Ответ 4

IntelliJ:

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

SearchFind Usages часто более полезен, поскольку он ищет область (обычно источники проекта) для использования переменной, поля, члена, класса...

Ответ 5

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