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


83

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

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

具体的にはIntelliJ9.0.2を使用しています。


最善の解決策は、メソッドを自動的に注文するフォーマットツールだと思います。散文:メソッドは、呼び出される方法の順序である必要があります。新聞の記事を読むのと同じように。
Chris311 2016年

回答:


109

あなたは、メソッド名とヒットを選択することができます:Ctrl+ Shift+UpまたはCtrl+ Shift+Downそれを上下に移動します。

:OS X上でCmd+ Shift+UpまたはCmd+ Shift+Down

これに加えて、Rearrangerプラグインを使用すると、メソッドをすばやく移動したり、コーディング規約に基づいて標準の順序を定義したりすることができます。


たとえば、アルファベット順に並べ替えるだけの何かはありませんか?
Jaime Hablutzel 2011年

リンクが
切れ

@stian -あなたは投稿のリンクが利用可能なダウンロード持っていないようですので、私は、ジェットブレーンズのウェブサイト上でプラグインのページへのポイントへの投稿を編集した
エイドリアン

5
Cmdを+ Shiftキー+↑/ Cmdを+ Shift +下向き:MacのOS Xの場合
クリスチャン・ガルシア

2
IDEA 16以降では、メニューを介して利用できます:Code > Move Statement Up/Down
Lu55

24

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

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

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

IntellijRearrangeMethodsInDFO

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

RearrangeActionMenuButton

ここに画像の説明を入力してください


24

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

ここに画像の説明を入力してください


1
注文の選択を1つ以上のルールに一度に適用するにはどうすればよいですか?
デレクマハール2018年

これはまったく機能しません。この構成を使用して再配置を実行しても、何も実行されません。
マルガード

このソリューションは、デフォルトの順序で機能します。ありがとう!
ポリワール氏

7

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

あなたはまたにすることができますctrl+ shift+numberpad -すばやく(プレーン動き回っに集中できるように、すべてを崩壊し-ないように注意してくださいなぜ、同様に私のラップトップ上の作品を)し、ctrl+ shift+numberpad +すべてを見るために取り戻すために(CTRL-シフト-等しい私のラップトップ上の作品として上手)。



1

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.