Более надежное решение может позволить классам реализовать какой-то общий интерфейс, назовем его Sortable
:
public interface Sortable {
String getName();
int getSortOrder();
}
Тогда ваши классы будут выглядеть примерно так:
public class GroupObject implements Sortable {
String name;
@Override
public String getName() {
return name;
}
@Override
public int getSortOrder() {
return 1;
}
}
И сортировка будет такой простой:
_listValues.sort(Comparator.comparing(Sortable::getSortOrder).thenComparing(Sortable::getName));
Учитывая, что _listValues
имеет тип List<Sortable>
.