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


82

与手动剪切和粘贴代码相比,在IntelliJ中有没有更简单的方法来对类源文件中的方法进行重新排序?如今,在重构遗留代码时,我经常需要这样做,例如,使相关方法在源代码中彼此靠近。

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

我使用的是IntelliJ 9.0.2。


我认为最好的解决方案是使用格式化工具,该工具可以自动对方法进行排序。散文:方法应按调用方式排序。就像您在报纸上阅读文章一样。
Chris311 '16

Answers:


107

您可以选择一个方法名称,然后单击:Ctrl+ Shift+UpCtrl+ Shift+Down将其上下移动。

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

除此之外,重新排列插件可让您快速移动方法,甚至根据您的编码约定定义标准顺序。


例如,是否存在仅按字母顺序重新排序的内容?
Jaime Hablutzel 2011年

链接已
消失

@stian-我已编辑帖子以指向JetBrains网站上的插件页面,因为您发布的链接似乎没有任何下载
adrian

5
对于Mac OS X:Cmd + Shift +向上/ Cmd + Shift +向下
ChristianGarcía2014年

2
自IDEA 16起,可通过菜单使用:Code > Move Statement Up/Down
Lu55

23

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

尽管IntelliJ隐式提供了此功能,但它既需要启用又要固定。OP建议的方法是在技术上按深度优先顺序排列方法。但是,如果使用“广度优先”顺序(工作正常),则应通过将所有调用方和被调用方方法安排在一起来减少移动函数的手动工作。

问题链接:https : //youtrack.jetbrains.com/issue/IDEA-149524。请为它的解决方案投票。

IntellijRearrangeMethodsInDFO

对此的适当操作是重新排列代码。它没有分配键,但是您可以使用“首选项”->“键映射”定义自己的键。

重新排列动作菜单按钮

在此处输入图片说明


23

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

在此处输入图片说明


1
如何一次将订单选择应用于一个或多个规则?
德里克·马哈

这根本不起作用。使用此配置并执行重新排列不会执行任何操作。
穆加德

此解决方案使用默认顺序。谢谢!
Polywhirl先生,

7

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

您还可以ctrl+ shift+numberpad -快速折叠所有内容,以便您可以集中精力移动(普通-笔记本电脑上也可以使用普通格式,不知道为什么)和ctrl+ shift+numberpad +返回查看所有内容(ctrl-shift-equals在我的笔记本电脑上可以使用)好)。



1

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

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

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.