首页 文章

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

提问于
浏览
59

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

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

MyClass myObject = new MyClass();

它会找到合适的参数 .

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

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

5 回答

  • 3

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

    enter image description here

  • 105

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

  • 2

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

    enter image description here

  • 14

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

    因此,在您的示例中,Ctrl Shift Space几乎肯定会将“名称”视为建议 . 而下一个Ctrl Shift Space会提出'值'作为建议 .

  • 12

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

相关问题