Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用键盘快捷键重新排列IntelliJ中的方法参数_Java_Intellij Idea - Fatal编程技术网

Java 使用键盘快捷键重新排列IntelliJ中的方法参数

Java 使用键盘快捷键重新排列IntelliJ中的方法参数,java,intellij-idea,Java,Intellij Idea,在IntelliJ中,我可以通过按重新排列语句的顺序(或该部分的整个方法)⌘ + Shift+↑ (或⌘ + Shift+↓). 我想知道是否有一种快捷方式可以轻松地更改方法参数的顺序,以便 public void sth(String a, String b) {...} 将成为 public void sth(String b, String a) {...} 使用键盘快捷键的笔划(假设光标位于其中一个参数上) 对我来说,如果IntelliJ只需对参数重新排序就足够了。也就是说,这不需要

在IntelliJ中,我可以通过按重新排列语句的顺序(或该部分的整个方法)⌘ + Shift+↑ (或⌘ + Shift+↓).

我想知道是否有一种快捷方式可以轻松地更改方法参数的顺序,以便

public void sth(String a, String b) {...}
将成为

public void sth(String b, String a) {...}
使用键盘快捷键的笔划(假设光标位于其中一个参数上)


对我来说,如果IntelliJ只需对参数重新排序就足够了。也就是说,这不需要触发整个重构>更改方法签名的事情。

自IDEA 16 EAP以来,有一个操作。它在菜单中:

编码|向左/向右移动元素

键盘快捷键为Alt+Ctrl+Shift+Left/Right(OSX为Alt+Cmd+Shift+Left/Right)


有关更多详细信息,请参阅。

我不确定IDEA是否可行,但您可以尝试将编辑器宏用于两种参数方法:

  • 编辑器->宏->开始宏录制
  • 录制您的宏:
    • Ctrl+F6打开“更改签名”对话框
    • Alt+↓ 交换第一个和第二个参数
    • 选项卡以停用参数选项卡,并让重构按钮获得焦点
    • 输入可在执行重构时关闭对话框
  • 编辑器->宏->停止宏录制并为宏命名,比如“交换方法参数1和2”

然后通过编辑器->宏菜单访问宏,或者在设置->键映射->主菜单/Edit/Macros/Swap method parameters 1和2中为宏指定一个自定义快捷方式。在我看来,这是一种非常肮脏且与上下文无关的方式,但可能会对您有所帮助。

在Ubuntu 18.04上,默认快捷方式是Ctrl+Alt+Shift+Super+Left/Right来移动宏论点在位置上向左或向右


这是因为它的设置不会与一些新的操作系统级快捷方式冲突

当有三个或更多参数时,它应该如何表现?:)假设我的光标位于第二个参数上:将其向上移动,它应该成为第一个参数。向下移动它,它应该成为最后一个。一次向上或向下移动一个参数!我很想能做这个特技
Ctrl+F6
然后
Alt+Up
Alt+Down
移动参数?是的,比你想象的要频繁。当我开始充实一个方法时,我通常
Alt Enter
在需要时添加额外的参数。完成后,我会重新排列参数,使其更符合逻辑顺序。另外,我认为对于方法调用也有这个快捷方式会非常好。(老兄,当我使用超过4或5个相同类型的参数的遗留API时,我有多少次出现顺序错误!uhg!)我想我必须再等一段时间,直到IDEA 16发布,但这是个好消息!EAP已经面世了,你可以试试:)我认为发布不会超过2个月。很好,但Lyubmyr Shaydariv回答:要好得多,因为它会根据参数的变化进行重构和更改依赖项。这只是切换此方法的参数,而不是从其他方法调用方法。您不需要为它生成宏,只需按住CTRL+F6键并使用ALT+↓@mtrakal他们是两个不同的东西。当我编写一个方法时,我不需要重量级(缓慢)重构——我只想轻松地移动参数。这一个的真正问题是,我经常在单独的行上有参数,所以这不起作用。(我真的想要上一个移动和下一个移动,而不是左右移动。)如果在不同方法的多个参数上有多个光标,它们可以一起移动。谢谢,尽管这需要手指体操,但这比需要绑定单独的键要好得多。谢谢。它在代码菜单左侧显示为C+A+s+,但显示为灰色。我一直在想为什么,直到看到这个。