Can IntelliJ auto-complete constructor parameters

2019-01-21 18:37发布

If my class has a non-empty constructor, is it possible to auto-complete parameters in the new expression?

With Eclipse, if you press ctrl+space when the cursor is between the parenthesis:

MyClass myObject = new MyClass();

it will find the appropriate parameters.

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

When I use ctrl+shift+spacebar after the new, Intellij shows me the constructors, but I can't choose one for auto-completion. Am I missing an option?

5条回答
迷人小祖宗
2楼-- · 2019-01-21 18:44

In Intellij Idea 2016.3 you can use option + return. It will ask you if you want to introduce the named argument for the argument you are on and all the followers.

enter image description here

查看更多
Juvenile、少年°
3楼-- · 2019-01-21 18:46

Well I used the eclipse key map where Parameter Info is unassigned. Here is how to change that:

enter image description here

查看更多
在下西门庆
4楼-- · 2019-01-21 18:53

Well there's the Ctrl+Shift+Space combination, which tries to come up with a set of possible arguments. And if you press the Ctrl+Shift+Space a second time, Idea tries find arguments which fit across multiple calls & conversions.

So in your example Ctrl+Shift+Space would almost certainly bring up the 'name' as suggestion. And the next Ctrl+Shift+Space would bring up 'value' as suggestion.

查看更多
手持菜刀,她持情操
5楼-- · 2019-01-21 18:56

There's no such possibility yet. As IDEA doesn't fill the arguments automatically, distinguishing the constructors in the lookup makes no sense. There's a request for that (http://youtrack.jetbrains.net/issue/IDEABKL-5496) although I sincerely believe such a behavior is too dangerous and error-prone.

查看更多
Summer. ? 凉城
6楼-- · 2019-01-21 18:58

I usually start with CtrlP (Parameter Info action) to see what arguments are accepted (auto guess complete is way to error prone in my opinion). And if as in your case you want to fill in name type n a dropdown menu appears with all available variables/fields (etc) starting with n Arrow Up/Down and Tab to select name, or CtrlSpace to select a method (or even CtrlAltSpace to be killed by suggestions;-), followed by , and v Tab for value.

查看更多
登录 后发表回答