使用整理程序对整数列表进行排序

时间:2019-04-04 08:24:11

标签: java sorting java-8 comparator collator

我们正在使用下面的简化代码进行排序。

    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值工作正常。但是,我们想重用它来比较BooleanInteger等。对于给定的整理程序,结果为:

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

在删除整理程序时,排序也适用于String以外的其他数据类型,但例如德国的变音符号未按要求排序。

对于基于字符串的值,使用整理程序“组合”,而对于其他数据类型,则忽略它是什么适当的方法?

0 个答案:

没有答案