Возможность написать родовой компаратор который позволяет для сортировать данных основанных на выбранной колонке в или ОНем восходящ или ничходящем заказе когда тип данным по колонки не знан upfront.

Когда я смотрел на с снабубежать способность вид основанный на колонках, я осуществил что я должно снабдить компаратор который основал на сортируя критериях может сортировать в или ОНем восходящ или ничходящем заказе. Также тип данных колонок может быть друг. Так если я пишу компаратор для шнура, то, он не будет работать для поля интежера. Тем ме менее по мере того как я не знал тип данных колонки заранее, я должен создать что-то родовое которое работало везде. И моя константа стремится создать что-то просто.

Здесь чем я пришел вверх с:

Comp типа снабжает компаратор {
        rvalue int;
        Cf шнура;
        Булевское corder;

        Comp публики (compfld шнура, булевский заказ) {
            cf = compfld;
            corder = заказ;
        }

        публика int сравнивает (предмета предмет во-первых, во-вторых) {
            попытка {
                Соответствующие cFirst = null, cSecond = null;
                cFirst = (соответствующее) first.getClass () .getField (cf) .get (сперва);
                cSecond = (соответствующее) second.getClass () .getField (cf) .get (во-вторых);
                возвращение (corder.booleanValue ())? cFirst.compareTo (cSecond): cSecond.compareTo (cFirst);
            } задвижка (исключение e) {
                ход новое RuntimeException («инвалидный пройденный предмет»);
            }
        }
    }

Этот компаратор пройден на имя поля/колонки для того чтобы сравнить, как шнур, и он fetches данные по колонки от предмета и сравнивает с соответствуя информацией от другого предмета. Здесь по мере того как вы можете увидеть каждый пример предмета содержит всю информацию для рядка данных. Настолько один рядок составляет карту до один пример предмета.