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

时间:2010-05-13 13:54:12

标签: java refactoring methods intellij-idea

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

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

我使用IntelliJ 9.0.2是具体的。

6 个答案:

答案 0 :(得分:86)

您可以选择方法名称并点击: Ctrl + Shift + Up Ctrl + Shift + Down 可上下移动。

在OS X上: Cmd + Shift + Up Cmd + Shift + 向下

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

答案 1 :(得分:12)

由于IntelliJ中存在错误, 不是一个完美的答案。

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

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

IntellijRearrangeMethodsInDFO

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

RearrangeActionMenuButton

enter image description here

答案 2 :(得分:11)

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

enter image description here

答案 3 :(得分:7)

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

您还可以 ctrl + shift + numberpad - 快速折叠所有内容,以便您可以专注于移动(普通 - 也适用于我的笔记本电脑,不知道为什么)和 ctrl + shift + numberpad + 回来查看一切(ctrl-shift-equals也适用于我的笔记本电脑)。

答案 4 :(得分:2)

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

答案 5 :(得分:0)

有一种自动方式,您可以稍后进行调整

代码 - >显示重新格式化文件对话框

并勾选“重新排列代码”框