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