Может ли IntelliJ автоматически заполнить параметры конструктора в «новом» выражении? - PullRequest
63 голосов
/ 27 января 2011

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

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

MyClass myObject = new MyClass();

найдет подходящие параметры.

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

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

Ответы [ 5 ]

105 голосов
/ 27 ноября 2011

Обычно я начинаю с Ctrl P (действие Parameter Info), чтобы увидеть, какие аргументы принимаются (на мой взгляд, автоматическое предположение завершено - это путь к ошибкам). И если, как и в вашем случае, вы хотите заполнить name тип n, появится выпадающее меню со всеми доступными переменными / полями (и т. Д.), Начиная с n Стрелка вверх / вниз и Нажмите для выбора имени или Ctrl Пробел для выбора метода (или даже Ctrl Alt Пробел быть убитым предложениями ;-), за которыми следуют , и v Tab для значения.

15 голосов
/ 27 января 2015

Ну, я использовал карту ключей затмения, где Информация о параметре не назначена.Вот как это изменить:

enter image description here

12 голосов
/ 27 января 2011

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

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

3 голосов
/ 20 декабря 2016

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

enter image description here

3 голосов
/ 27 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...