Intellij idea IntelliJ能否在“上自动完成构造函数参数”;新";表情?

Intellij idea IntelliJ能否在“上自动完成构造函数参数”;新";表情?,intellij-idea,Intellij Idea,如果我的类有一个非空构造函数,是否可以自动完成new表达式中的参数 对于Eclipse,如果在光标位于括号之间时按ctrl+space: MyClass myObject = new MyClass(); 它将找到合适的参数 --> MyClass myObject = new MyClass(name, value); 当我在new之后使用ctrl+shift+spacebar时,Intellij会向我显示构造函数,但我无法选择一个自动完成。我是否错过了一个选择?目前还没有这种可能

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

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

MyClass myObject = new MyClass();
它将找到合适的参数

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

当我在
new
之后使用ctrl+shift+spacebar时,Intellij会向我显示构造函数,但我无法选择一个自动完成。我是否错过了一个选择?

目前还没有这种可能性。由于IDEA不会自动填充参数,因此在查找中区分构造函数是没有意义的。有人要求这样做(http://youtrack.jetbrains.net/issue/IDEABKL-5496)尽管我真心相信这样的行为太危险而且容易出错。

还有Ctrl+Shift+Space组合,它试图找出一组可能的参数。如果您第二次按Ctrl+Shift+Space,Idea将尝试查找适合多个调用和转换的参数


因此,在您的示例中,Ctrl+Shift+Space几乎肯定会显示“名称”作为建议。下一个Ctrl+Shift+Space将显示“value”作为建议。

我通常从CtrlP(
Parameter Info
action)开始查看哪些参数被接受(在我看来,自动猜测完成是一种容易出错的方式)。如果您想填写
name
type
n
,则会出现一个下拉菜单,其中包含所有可用的变量/字段(等),从
n
上/下箭头开始,用Tab键选择name,或用CtrlSpace键选择方法(甚至用CtrlAltSpace键删除建议;-),然后是
v
选项卡的值。

我很好地使用了eclipse键映射,其中参数信息未分配。 以下是如何改变这种情况:


在Intellij Idea 2016.3中,您可以使用option+return。它会询问您是否要为您正在使用的参数和所有跟随者引入命名参数


正在查找此功能:Ctrl+p。谢谢!作为参考,对于OSX密钥绑定,这是⌘P,功能的名称是“参数信息”(从视图>参数信息)。Ctrl+P,参数信息(在方法调用参数中)。我不同意-为什么用户至少可以选择启用它会如此危险?这是一个非常有用的功能,可能很容易实现——因此我不认为不实现这个功能有什么价值。当任何供应商想告诉我什么是好的或坏的开发行为时,这总是很有趣的。这很有意义,因为当我创建一个类时,我需要选择使用哪个ctor。Jens Nerche似乎已经为此开发了一个插件,请参阅。它被添加到因特利利的插件RePO中。Eclipse基金会显然不认为这个特性是“太危险和容易出错”,因为它在IDE中已经有好几年了。那对我不起作用。它是特定于某一种语言的吗?我已经在Scala和Mac OSX中进行了测试,但不确定其他语言/环境。目前生产使用的大多数Java版本都不支持命名参数。命名参数助手无论如何都不会自动完成构造函数,它只会更改已指定构造函数调用的样式。如果您现在切换到Kotlin,这有一个插件:为什么当你按下ctrl+space时,这样一个简单的功能不可用?当2011年的答案有116票时,为什么你在2016年将接受的答案改为三票赞成?