Оба метода приемлемы. Обратите внимание, что в последнем случае b=new B()
не может быть инициализирован, если присутствует другой конструктор. Подумайте о инициализационном коде вне конструктора как об общем конструкторе, и код будет выполнен.
Эта функция еще не была принята IntelliJ IDEA.
Я отправил явный запрос в систему отслеживания ошибок JetBrains: https://youtrack.jetbrains.com/issue/IDEA-206367
Хотя и другие похожие билеты которые были представлены ранее, еще не завершены:
Однако вы можете в некоторой степени достичь желаемого поведения, используя плагин Custom Postfix Templates , который позволяет определить ваши собственные шаблоны постфикса завершения .
Заявление, подобное этому:
Будут преобразованы в:
Для этого:
3) Добавьте следующий шаблон:
.var : Extracts variable as inferred 'var' type
NON_VOID → var $VAR:suggestVariableName()$ = $expr$;
Перезапустите IntelliJ, и все готово.
Примечание . Существующее завершение постфикса с именем 'var' существует в IntelliJ по умолчанию, вы можете отключить существующее (через Настройки → Редактор → Общие → Завершение постфикса ) или найти другое имя для нового.