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

Loi*_*oic 63 intellij-idea

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

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

MyClass myObject = new MyClass();
Run Code Online (Sandbox Code Playgroud)

它会找到合适的参数.

-->  MyClass myObject = new MyClass(name, value);
Run Code Online (Sandbox Code Playgroud)

当我在使用ctrl+ shift+ spacebar之后new,Intellij向我展示了构造函数,但是我不能选择一个用于自动完成.我错过了一个选项吗?

osu*_*lad 106

我通常从CtrlP(Parameter Info动作)开始看看接受了哪些参数(在我看来,自动猜测完成是容易出错的方法).如果在你的情况下你要填写name类型,n则会出现一个下拉菜单,其中包含所有可用的变量/字段(等),n Arrow Up/Down以及Tab选择名称,或CtrlSpace选择方法(甚至CtrlAltSpace被建议杀死;-),通过,v Tab对价值.

  • 作为参考,使用OS X键绑定时,这是⌘P,功能名称是"参数信息"(来自视图>参数信息). (15认同)
  • 正在寻找此功能:Ctrl + P. 谢谢! (12认同)

joe*_*cks 16

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

在此输入图像描述


Gam*_*lor 12

那么就是Ctrl + Shift + Space组合,它试图提出一组可能的参数.如果您再次按Ctrl + Shift + Space,Idea会尝试查找适合多个呼叫和转换的参数.

所以在你的例子中,Ctrl + Shift + Space几乎肯定会把'name'作为建议.而下一个Ctrl + Shift + Space会提出"值"作为建议.


Fil*_*uca 5

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

在此输入图像描述

  • 那对我不起作用。它特定于某种语言吗? (2认同)