IDEA: Как создать toString() с помощью суперкласса

Если A extends B, используя идею IntelliJ, как я могу генерировать toString(), используя автоматически публичные (или защищенные) методы B.

В этом примере, как я могу включить публичные методы из FileRow?

enter image description here

Ответ 1

Существует шаблон для использования super.toString(), но нет возможности напрямую ссылаться на члены суперкласса. Возможно, стоит отправить новый запрос для этой функции.

Ответ 2

Эта проблема приведена в https://youtrack.jetbrains.com/issue/IDEA-93029

Он помечен как исправленный с исправлением версии 2017.1 (сборка 171.1161): он скоро выйдет:)

Ответ 3

Просто измените шаблон, который генерирует метод toString():

Alt + Insert, чтобы открыть окно String Generator → Нажмите Settings → выбрать вкладку Templates.

Затем скопируйте нужный шаблон в новый шаблон и добавьте переднюю часть toString перед оператором return.

   #if ($class.hasSuper)
     stringBuilder.append(super.toString());
   #end