Сортировка списка целых чисел с помощью Collator ⇐ JAVA
-
Anonymous
Сортировка списка целых чисел с помощью Collator
Мы используем следующий упрощенный код, урезанный для сортировки.
Collator collator = Collator.getInstance(Locale.GERMAN); collator.setStrength(Collator.SECONDARY); return Comparator.comparing(entity -> { пытаться { // Здесь пользовательские вещи... // Обрабатываемые здесь значения могут быть строковыми, целыми, логическими или датами. вернуть (Сравнимое) sortFieldValue; } catch (Исключение е) { выбросить новое RuntimeException(); } }, сортировщик); Это отлично работает для значений String. Однако мы хотели бы повторно использовать это для сравнения Boolean, Integer и т. д. При использовании данного средства сортировки это приводит к:
java.lang.Integer нельзя привести к java.lang.String
При удалении сортировщика сортировка также работает для типов данных, кроме String, но тогда, например, Немецкие умлауты не сортируются должным образом.
Каким может быть адекватный способ «объединить» использование механизма сортировки для строковых значений и игнорирование его для других типов данных?
Мы используем следующий упрощенный код, урезанный для сортировки.
Collator collator = Collator.getInstance(Locale.GERMAN); collator.setStrength(Collator.SECONDARY); return Comparator.comparing(entity -> { пытаться { // Здесь пользовательские вещи... // Обрабатываемые здесь значения могут быть строковыми, целыми, логическими или датами. вернуть (Сравнимое) sortFieldValue; } catch (Исключение е) { выбросить новое RuntimeException(); } }, сортировщик); Это отлично работает для значений String. Однако мы хотели бы повторно использовать это для сравнения Boolean, Integer и т. д. При использовании данного средства сортировки это приводит к:
java.lang.Integer нельзя привести к java.lang.String
При удалении сортировщика сортировка также работает для типов данных, кроме String, но тогда, например, Немецкие умлауты не сортируются должным образом.
Каким может быть адекватный способ «объединить» использование механизма сортировки для строковых значений и игнорирование его для других типов данных?
Мобильная версия