【问题标题】:Can IntelliJ auto-complete constructor parameters on "new" expression?IntelliJ 可以在“新”表达式上自动完成构造函数参数吗?
【发布时间】:2011-01-27 10:41:24
【问题描述】:

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

在 Eclipse 中,如果在光标位于括号之间时按 ctrl+空格

MyClass myObject = new MyClass();

它会找到合适的参数。

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

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

【问题讨论】:

  • 为什么当你按下 ctrl+space 时没有这么简单的功能??
  • 当 2011 年的答案为 116 时,为什么您将 2016 年接受的答案更改为 1 和 3 票?

标签: intellij-idea


【解决方案1】:

我通常从 CtrlPParameter Info 操作)开始查看接受哪些参数(在我看来,自动猜测完成容易出错)。如果您想填写name 类型n,则会出现一个下拉菜单,其中包含以n 开头的所有可用变量/字段(等) Arrow Up/DownTab 选择名称,或 CtrlSpace 选择方法(甚至 CtrlAlt 空格被建议杀死;-),然后是,v Tab值。

【讨论】:

  • 正在寻找此功能:Ctrl+P。谢谢!
  • 作为参考,对于 OS X 键绑定,这是 ⌘P,功能名称是“参数信息”(来自视图 > 参数信息)。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

      • 这对我不起作用。它是否特定于某种语言?
      • 我在 Scala 和 Mac OSX 中测试过,不确定其他语言/环境。
      • 当今生产使用的大多数 Java 版本不支持命名参数。命名参数助手无论如何都不会自动完成构造函数,它只会改变已经指定的构造函数调用的样式。
      • 如果你现在切换到 Kotlin,有一个插件:plugins.jetbrains.com/plugin/10942-kotlin-fill-class
      【解决方案5】:

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

      【讨论】:

      • Ctrl+P,参数信息(在方法调用参数中)。
      • 我不同意 - 为什么用户至少可以选择启用它会如此危险?这是一个非常有用的功能,可能很容易实现 - 所以我看不出不实现这个功能的价值。
      • 当任何供应商想告诉我什么是好的或坏的开发行为时,这总是很有趣。这很有意义,因为当我创建一个类时,我需要选择要使用的 ctor。否则,ctors 就没有意义了。
      • Jens Nerche 现在似乎已经为此开发了一个插件,请参阅github.com/kontext-e/AutoFillingCallArguments。它已添加到 Intellij 的插件存储库中。
      • Eclipse 基金会显然并不认为这个特性“太危险且容易出错”,因为它在他们的 IDE 中已经存在多年。 :)
      猜你喜欢
      • 2021-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2015-05-26
      • 2012-10-31
      • 2011-02-21
      相关资源
      最近更新 更多