Компаратору 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), что не означает, что я напишу сотни строк почти одного и того же кода?
Спасибо за все!