如果我的类有非空构造函数,是否可以自动完成new
表达式中的参数?
使用Eclipse时,如果在光标位于括号之间时按 ctrl + space :
MyClass myObject = new MyClass();
它会找到合适的参数。
--> MyClass myObject = new MyClass(name, value);
当我在new
之后使用 ctrl + shift + 空格键时,Intellij向我展示了构造函数,但我可以'选择一个用于自动完成。我错过了一个选项吗?
答案 0 :(得分:105)
我通常以 Ctrl P (Parameter Info
动作)开始,看看接受了哪些参数(在我看来,自动猜测完全是容易出错的方法) 。如果您要填写name
类型n
,则会出现一个下拉菜单,其中包含所有可用的变量/字段(等),以n
向上/向下箭头< / kbd>和 Tab 选择名称,或 Ctrl Space 选择方法(甚至 Ctrl Alt 空间将被建议杀死;-),然后是,
和v
Tab 的值。
答案 1 :(得分:15)
我使用了eclipse键映射,其中参数信息未被分配。 以下是如何改变:
答案 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)