IntelliJ可以自动完成“新”表达式的构造函数参数吗?

时间:2011-01-27 10:41:25

标签: intellij-idea

如果我的类有非空构造函数,是否可以自动完成new表达式中的参数?

使用Eclipse时,如果在光标位于括号之间时按 ctrl + space

MyClass myObject = new MyClass();

它会找到合适的参数。

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

当我在new之后使用 ctrl + shift + 空格键时,Intellij向我展示了构造函数,但我可以'选择一个用于自动完成。我错过了一个选项吗?

5 个答案:

答案 0 :(得分:105)

我通常以 Ctrl P Parameter Info动作)开始,看看接受了哪些参数(在我看来,自动猜测完全是容易出错的方法) 。如果您要填写name类型n,则会出现一个下拉菜单,其中包含所有可用的变量/字段(等),以n 向上/向下箭头< / kbd>和 Tab 选择名称,或 Ctrl Space 选择方法(甚至 Ctrl Alt 空间将被建议杀死;-),然后是,v Tab 的值。

答案 1 :(得分:15)

我使用了eclipse键映射,其中参数信息未被分配。 以下是如何改变:

enter image description here

答案 2 :(得分:12)

那就是Ctrl + Shift + Space组合,它试图提出一组可能的参数。如果您再次按Ctrl + Shift + Space,Idea会尝试查找适合多个调用的参数。转化

所以在你的例子中,Ctrl + Shift + Space几乎肯定会把'name'作为建议。然后下一个Ctrl + Shift + Space会将'value'作为建议。

答案 3 :(得分:3)

还没有这种可能性。由于IDEA没有自动填充参数,因此在查找中区分构造函数毫无意义。有一个请求(http://youtrack.jetbrains.net/issue/IDEABKL-5496)虽然我真诚地相信这样的行为太危险且容易出错。

答案 4 :(得分:2)

在Intellij Idea 2016.3中,您可以使用选项 + 返回。它会询问您是否要为您所在的参数和所有关注者引入命名参数。

enter image description here