在IntelliJ中重新排序Java类方法的简单方法?

Pét*_*rök 69 java methods refactoring intellij-idea

有没有比在IntelliJ中的类源文件中重新排序方法更简单的方法,而不是手动剪切和粘贴代码?现在我经常在重构遗留代码时需要这个,例如在源代码中移动相关的方法.

在Eclipse AFAIK中,有一个类似于IntelliJ的Structure视图的视图,我可以在其中拖放方法.但是,这在IntelliJ中不起作用,我也无法从其帮助中找到任何提示.

我使用IntelliJ 9.0.2是具体的.

ret*_*nym 92

您可以选择一个方法名称并点击:Ctrl+ Shift+ UpCtrl+ Shift+ Down来上下移动它.

在OS X上:Cmd+ Shift+ UpCmd+ Shift+Down

除此之外,Rearranger插件允许您快速移动方法,甚至可以根据您的编码约定定义标准排序.

  • 对于Mac OS X:Cmd + Shift + Up/Cmd + Shift + Down (5认同)
  • 从 IDEA 16 开始,它可以通过菜单获得:`Code > Move Statement Up/Down` (3认同)

sau*_*hts 15

没有一个完美的答案还没有,因为在的IntelliJ的错误.

虽然IntelliJ隐式提供此功能,但它需要启用和修复.OP建议的方法是从技术上按深度优先顺序排列方法.但是,如果你使用广度优先排序(它可以正常工作),它应该通过将所有调用者和被调用者方法排列在一起来减少大量移动函数的手动工作.

问题链接:https://youtrack.jetbrains.com/issue/IDEA-149524.请为其决议投票.

IntellijRearrangeMethodsInDFO

对此的适当操作是重新排列代码.这没有为其分配键,但您可以使用Preferences-> Keymap定义自己的键.

RearrangeActionMenuButton

在此输入图像描述


geo*_*ger 14

IntelliJ具有内置系统,允许您指定如何订购方法.您需要转到设置(Ctrl + Alt + S) - >编辑器 - >代码样式 - > Java - >排列(选项卡)并向下滚动,直到找到带有的图标methods.在那里,您可以操作选项以按可见性或按字母顺序对它们进行排序,或者将相关的选项组合在一起.这是我的设置的屏幕截图,它将通过可见性(公共,受保护,私有)和按字母顺序(az)自动排序方法.蓝色突出显示当前选定的规则.

在此输入图像描述

  • 按“Code -> Rearrange Code”可以立即将配置应用到当前文件! (4认同)
  • 这根本不起作用。使用此配置并执行重新排列不会执行任何操作。 (3认同)
  • 如何一次将订单选择应用于一个或多个规则? (2认同)

Jac*_*son 7

选择一段文本(按 Ctrl-W 几次),然后使用 Ctrl-Shift-Up 和 Ctrl-Shift-Down 来移动它。


Yis*_*hai 7

将光标放在方法定义行上(您不必按,ctrl+ shift+ upctrl+ shift+ down,分别向上或向下移动).

您还可以ctrl+ shift+ numberpad -快速折叠所有内容,以便您可以专注于移动(-我的笔记本电脑上的普通工作,不知道为什么)和ctrl+ shift+ numberpad +以返回查看所有内容(ctrl-shift-equals在我的笔记本电脑上工作为好).