我们正在使用下面的简化代码进行排序。
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
以外的其他数据类型,但例如德国的变音符号未按要求排序。
对于基于字符串的值,使用整理程序“组合”,而对于其他数据类型,则忽略它是什么适当的方法?