的POJO的名单,我想排序基于传入的领域(的SortField)和顺序(中将sortOrder)参数的POJO的名单上有这方面的工作(6场) -排序在Java中
switch (sortField) {
case "field1" :
if (sortOrder == "asc") {
list.sort((lItem1, lItem2) -> lItem1.getField1().compareTo(lItem2.getField1()));
} else {
list.sort((lItem1, lItem2) -> lItem2.getField1().compareTo(lItem1.getField1()));
}
break;
case "field2" :
if (sortOrder == "asc") {
list.sort((lItem1, lItem2) -> lItem1.getField2().compareTo(lItem2.getField2()));
} else {
list.sort((lItem1, lItem2) -> lItem2.getField2().compareTo(lItem1.getField2()));
}
break;
//...
}
这工作完美,但感觉有点笨重,我只是想知道是否有人可以指点我一个(相对简单!)整数&更优雅的方式来做到这一点?
使用不同Comperators – Jens
比较器和[thenComparing](https://docs.oracle.com/javase/8/docs/api/java/util/Comparator.html#thenComparing-java.util.Comparator-) –
我因为它更适合于http://codereview.stackexchange.com/ – Flown