Сортировать список целых чисел, используя Collator - PullRequest
1 голос
/ 04 апреля 2019

Мы используем следующий упрощенный код, отсекаемый для сортировки.

    Collator collator = Collator.getInstance(Locale.GERMAN);
    collator.setStrength(Collator.SECONDARY);
    return Comparator.comparing(entity -> {
        try {
            // Custom stuff here...
            // Values processed here cn be either String, Integer, Boolean or Date
            return (Comparable)sortFieldValue;
        } catch (Exception e) {
            throw new RuntimeException();
        }
    }, collator);

Это нормально работает для String значений. Однако мы хотели бы использовать это повторно, чтобы также сравнить Boolean, Integer и т. Д. С данным коллатером это приводит к:

java.lang.Integer cannot be cast to java.lang.String

При удалении сортировщика сортировка также работает для типов данных, отличных от String, но затем, например, Немецкие умлауты сортируются не так, как хотелось бы.

Что может быть адекватным способом «комбинировать» использование коллатера для строковых значений и игнорирование его для других типов данных?

...