オブジェクトArrayListをソートするための次の行を含む基本クラスがあります。
Collections.sort(objects, SortObjectList);
また、並べ替えを定義する次のクラス定義も含まれています。
private class SortObjectList implements Comparator<T>
{
    public int compare(T lhs, T rhs) 
    {
        return lhs.name.compareToIgnoreCase(rhs.name);
    }
}
派生クラスがさまざまな基準を使用してソートできるようにするために、次を実装しました。
Collections.sort(objects, getSortObjectClass());
と
public Comparator<T> getSortObjectClass() {
    return new SortObjectList();
}
private class SortObjectList implements Comparator<T>
{
    public int compare(T lhs, T rhs) 
    {
        return lhs.name.compareToIgnoreCase(rhs.name);
    }
}
次に、次のように派生クラスで並べ替えをオーバーライドします。
@Override
public Comparator<MyDataClass> getSortObjectClass() {
    return new SortObjectList();
}
private class SortObjectList implements Comparator<MyDataClass>
{
    public int compare(MyDataClasslhs, MyDataClassrhs) 
    {
        return lhs.seqNo - rhs.seqNo;
    }
}
名前ではなく seqNo で注文します。
動作しますが、少しぎこちないようです。よりエレガントなソリューションを知っている人はいますか?