1

我们使用以下简化的代码进行排序。

    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但例如德语变音符号未按需要排序。

使用整理器对基于字符串的值进行“组合”并忽略其他数据类型的适当方法是什么?

4

0 回答 0