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
.
Ответы
Ответ 1
Чтобы ответить на ваш вопрос; нет. Я не знаю какой-либо IDE, которая выделяет поля таким образом.
Я могу видеть причину, по которой вам это нравится. Если вы используете IntelliJ и в поле удерживаете клавишу Ctrl и наведите курсор мыши на поле, оно сообщает вам, где оно определено.
Я знаю, что это немного не по теме, но если причина, по которой вы хотите выделить синтаксис для унаследованных методов, может заключаться в том, что используемая вами кодовая база использует много наследования и не хватает композиции?
Ответ 2
Eclipse:
Можно выделить вызовы унаследованных методов, но не для полей.
Вы можете включить это в диалоговом окне "Настройки" в разделе "Java" → "Редактор" → "Раскраска синтаксиса".
В представлении списка элементов выберите Java → Inherited invotations метода, установите флажок Включить и отредактируйте, как он должен быть выделен.
Ответ 3
NetBeans: Щелкните правой кнопкой мыши → Навигация → Осмотреть геиерархию
Вы также можете переключать логику - сверху вниз или снизу вверх
Опции без редактора:
- JavaDoc - см. ссылку TREE
- Также проверьте JBoss Tattletale.
Ответ 4
IntelliJ:
Если классы определены в том же исходном файле, это делает нормальная переменная. Вы можете выделить по запросу с помощью Search
→ Highlight Usages in File
. В качестве альтернативы включите Settings
→ Editor
→ Highlight usages of element at caret
), чтобы всегда выделять элемент, в который помещается редактор.
Search
→ Find Usages
часто более полезен, поскольку он ищет область (обычно источники проекта) для использования переменной, поля, члена, класса...
Ответ 5
Зачем нужно затягивать? Потому что мы можем легче читать код. Hightlight - один из способов, но не лучший. Поскольку вы не можете заставить всех использовать этот редактор, даже он существует. Другими способами является использование этого и супер в самом коде, чтобы разложить их при написании кода. Java настолько гибкая, но мы можем сделать собственное правило или собственное правило компании, чтобы другие читали код легче. Когда я отлаживаю код вроде a.b(f.c(), e.k()), я действительно ненавижу его, чтобы входить и выходить или использовать часы для проверки значения...