次の問題に対する最善の解決策を誰かが提案してください(これは私がコーディングしようとしているプログラムの一部です):
メンバー変数を持つクラス Foo と、Foo を拡張する別のクラス Bar があります。Bar はメンバー変数を追加します。Bar オブジェクトはコレクションに格納されているため、これらのオブジェクトをメンバー変数のいずれかで並べ替えたいと考えています。
compareTo() メソッドに引数として渡すことができるクラスのメンバー変数を含む列挙型を使用することを検討しましたが、列挙型は暗黙的に静的であるため、Bar または拡張する可能性のある他のクラスのメンバー変数にパラメーターを追加することはできません比較したいフー。たとえば、メンバー変数 'myVar' で 2 つの Bar クラスを比較したい場合、bar1.compareTo(bar2, MyEnum.MYVAR) のように呼び出し、クラスを myVar 値と比較します。各メンバー変数で並べ替えるには個別のメソッドを作成する必要があるかもしれないと考えていますが、Javaコレクションでアイテムを自動的にソートするためにcompareTo()を使用したい(と思います)。
それは私が問題を説明できるのと同じくらい明確ですが、おそらくこれを完全に間違った方法で達成しようとしています。任意のポインタをいただければ幸いです。
編集 - これは、Windows エクスプローラー ウィンドウの列をさまざまな属性 (更新日、ファイル名、サイズなど) で並べ替えるのと同様の動作です。