web-dev-qa-db-ja.com

Javaクラスのメソッドを並べ替える簡単な方法?

コードを手動で切り取って貼り付けるよりも、IntelliJのクラスソースファイル内のメソッドを並べ替える簡単な方法はありますか?最近では、レガシーコードをリファクタリングするときにこれが必要になることがよくあります。関連するメソッドをソースコード内で互いに近づけます。

Eclipse AFAIKには、IntelliJの構造ビューに似たビューがあり、メソッドをドラッグアンドドロップできます。ただし、これはIntelliJでは機能せず、そのヘルプからもヒントを見つけることができませんでした。

具体的にはIntelliJ 9.0.2を使用しています。

66
Péter Török

メソッド名を選択してヒットできます: Ctrl+Shift+Up または Ctrl+Shift+Down 上下に移動します。

OS Xの場合: Cmd+Shift+Up または Cmd+Shift+Down

さらに、 Rearranger Plugin を使用すると、メソッドをすばやく移動したり、コーディング規則に基づいて標準の順序を定義したりすることもできます。

90
retronym

完全な答えではありませんまだ、IntelliJのバグのため。

IntelliJはこの機能を暗黙的に提供しますが、修正すると同時に有効にする必要があります。 OPが推奨する方法は、技術的に深さ優先の方法でメソッドを配置することです。ただし、Breadth-first順序付け(適切に機能する)を使用する場合は、すべての呼び出し元メソッドと呼び出し先メソッドを一緒に配置することにより、関数を移動する手作業を大幅に削減する必要があります。

問題リンク: https://youtrack.jetbrains.com/issue/IDEA-149524 。その解決に投票してください。

IntellijRearrangeMethodsInDFO

これに適切なアクションは、コードの再配置です。これにはキーが割り当てられていませんが、Preferences-> Keymapを使用して独自のキーを定義できます。

RearrangeActionMenuButton

enter image description here

13
saurabheights

IntelliJには、メソッドの順序付け方法を指定できる組み込みシステムがあります。設定(Ctrl + Alt + S)->エディター->コードスタイル-> Java->配置(タブ)に移動し、methods。そこで、オプションを操作して、可視性、またはアルファベット順に並べ替えたり、関連するものをグループ化したりすることができます。可視性(パブリック、保護、プライベート)およびアルファベット順にメソッドを自動的に並べる設定のスクリーンショット(az)。青いハイライトは、現在選択されているルールを示します。

enter image description here

11
georger

メソッド定義行にカーソルを置いて(押す必要はありません ctrl+shift+up または ctrl+shift+down、それぞれ上下に移動します。

またすることができます ctrl+shift+numberpad - すべてをすばやく折りたたんで、動き回ることに集中できます - ラップトップでも動作しますが、理由はわかりません) ctrl+shift+numberpad + すべてを見るために戻るために(ctrl-shift-equalsは私のラップトップでも動作します)。

7
Yishai

テキストのブロックを選択し(Ctrl-Wを数回押す)、Ctrl-Shift-UpおよびCtrl-Shift-Downを使用して移動します。

2
Jacob Mattison

自動化された方法があり、後で微調整できます

コード->再フォーマットファイルダイアログを表示

「コードの再配置」ボックスにチェックマークを付けます

0
Alon