Может ли IntelliJ автоматически заполнять параметры конструктора на" новом " выражении?


если мой класс имеет непустой конструктор, можно ли автоматически заполнять параметры в new выражение?

С Eclipse, если вы нажмете ctrl+пробел, когда курсор находится между скобками:

MyClass myObject = new MyClass();

он найдет соответствующие параметры.

-->  MyClass myObject = new MyClass(name, value);

когда я использую ctrl+shift+пробел после new, Intellij показывает мне конструкторы, но я не могу выберите один для автоматического завершения. Я упускаю возможность?

5 59

5 ответов:

в Intellij Idea 2016.3 вы можете использовать опции + return. Он спросит вас, Хотите ли вы ввести именованный аргумент для аргумента, на котором вы находитесь, и всех последователей.

enter image description here

Я обычно начинаю с CtrlP чтобы увидеть, какие аргументы принимаются (auto guess complete-это способ склонности к ошибкам, на мой взгляд). И если как в вашем случае вы хотите заполнить name тип выпадающее меню со всеми доступными переменных/полей (и т. д.), Начиная с nСтрелка Вверх/Вниз и Tab выбрать имя, или Ctrlпробел выбрать метод (или даже Ctrl Altпробел быть убитым предложениями; -), а затем , и vTab для стоимости.

Ну я использовал eclipse key map где Информация О Параметре отменена. Вот как это изменить:

enter image description here

Ну есть комбинация Ctrl + Shift+Space, которая пытается придумать набор возможных аргументов. И если вы нажмете Ctrl+Shift+Space во второй раз, Idea попытается найти аргументы, которые подходят для нескольких вызовов и преобразований.

поэтому в вашем примере Ctrl + Shift+Space почти наверняка вызовет " имя " в качестве предложения. И следующий Ctrl + Shift+пробел вызовет "значение" в качестве предложения.

пока такой возможности нет. Поскольку IDEA не заполняет аргументы автоматически, различение конструкторов в поиске не имеет смысла. Есть запрос на это (http://youtrack.jetbrains.net/issue/IDEABKL-5496) хотя я искренне считаю такое поведение слишком опасным и подверженным ошибкам.