Компаратору Java дали имя свойства для сравнения

Моя проблема в этом; Я должен заказать таблицу данных. Каждая строка таблицы является объектом (назовем его TableObject), хранящимся в списке. Каждый столбец данных является свойством класса (обычно это String).

Я должен сделать типичное упорядочение данных, когда пользователь нажимает на любой столбец. Поэтому я подумал об изменении списка на TreeSet и реализации Comparator в моем TableObject.

Проблема возникает, когда я пытаюсь изменить порядок TreeSet. Сначала сравнение довольно просто (проверка исключений в parseInt была опущена):

   public int compare(TableObject to1, TableObject to2){
        TableObject t1 = to1;
        TableObject t2 = to2;

        int result = 1;

        if(Integer.parseInt(t1.getId()) == Integer.parseInt(t2.getId())){result=0;}
        if(Integer.parseInt(t1.getId()) < Integer.parseInt(t2.getId())){result=-1;}

        return result;

    }

Но когда мне нужно переупорядочить текст данных или другие десятки данных, которые есть у TableObject, у меня возникает проблема. Я не хочу создавать десятки функций сравнения, каждая для одной. Я предпочитаю не использовать переключатель (или цепочку ifs), чтобы решить, как сравнивать объект.

Есть ли способ сделать это каким-то образом (например, Reflexive), что не означает, что я напишу сотни строк почти одного и того же кода?

Спасибо за все!

Ответы на вопрос(1)

Ваш ответ на вопрос