メンバーのソート機能
メンバーをソートする機能は、リファクタリングの一種ですが、Eclipseではコード生成機能の中にあります。メンバーを多数もつHelloStaffクラスで試してみましょう。
パッケージ・エクスプローラーで、クラス名HelloStaffを選択してから、メニューの[ソース(S)]‐[メンバーのソート(O)]を実行します。
「メンバーのソート」ウィンドウが表示されます。まず、ソートのルールを設定・確認します。[メンバーのソート順]のリンクをクリックします。
「設定」ウィンドウが表示され「メンバー・ソート順序」の設定画面になります。メンバーを表示する順序に加えて、同じカテゴリーのメンバーを可視性でソートすることができます。今回は[同じカテゴリーのメンバーを可視性でソート]をチェックしてオンにして、可視性の高い順(public→protected→default→private)にソートすることにしましょう。
可視性キーワードの選択が可能になります。[private]を選択して[下へ(W)]を2回クリックし最下位に移動します。
可視性の高い順(public→protected→default→private)になっていることを確認して[OK]をクリックします。
「メンバーのソート」ウィンドウに戻ります。規定値では[フィールド、列挙型定数、およびイニシャライザーをソートしない(D)]がONになっています。これは、フィールド、列挙型定数、およびイニシャライザーもソートの対象にすると順序が変わることによる動作の違いが発生する可能性があるからです。しかし、今回のサンプルでは問題がありませんので、[すべてのメンバーをソート(S)]に変更してから[OK]をクリックします。
ソートを実行する前にソースが解析され、問題点が検出されるとその旨が表示されます。今回のサンプルの場合、toString()メソッドに自動的に作成されたコメントとマーカーがあるため、ソートによって外れてしまう可能性があることが検出されました。今回は外れても構いませんので[継続(T)]をクリックします。
ソートが完了したので、ソースを確認します。staticフィールドのため最上位に置かれる「TAGAKU」の次に、クラスフィールドであるageとnameがあります。ageの可視性はprotectedであり、privateであるnameよりも前におかれます。このソースにはイニシャライザーはありませんので、次はコンストラクターのHelloStaff(String,int)が入ります。そして、その下にはメソッドが並びます。どのメソッドも可視性がpublicですので、単純に文字コード順にソートされています。
この機能は特にグループ開発や大きなプログラムソースの保守性向上に有効です。設計者や作成者の好みではなく、統一したルールでメンバーを扱うことができるからです。しかし、名称の文字コード順(実質的にアルファベット順+漢字コード順)にソートするわけですから、メソッド名やメンバ名などの命名ルールを規定し、しっかりと守っていないと逆効果になるため、注意が必要です。

![図01:[ソース(S)]‐[メンバーのソート(O)]を実行](http://cz-cdn.shoeisha.jp/static/images/article/4088/9-01s.gif)

![図03:[同じカテゴリーのメンバーを可視性でソート]をチェック](http://cz-cdn.shoeisha.jp/static/images/article/4088/9-03s.gif)
![図04:[private]を選択して[下へ(W)]をクリック](http://cz-cdn.shoeisha.jp/static/images/article/4088/9-04s.gif)
![図05:[下へ(W)]をもう1回クリック](http://cz-cdn.shoeisha.jp/static/images/article/4088/9-05s.gif)
![図06:[OK]をクリック](http://cz-cdn.shoeisha.jp/static/images/article/4088/9-06s.gif)
![図07:[すべてのメンバーをソート(S)]に変更してから[OK]をクリック](http://cz-cdn.shoeisha.jp/static/images/article/4088/9-07s.gif)
![図08:[継続(T)]をクリック](http://cz-cdn.shoeisha.jp/static/images/article/4088/9-08s.gif)
