我有一个实体列表,我希望能够使用自定义.sort((函数对列表进行排序,该函数将列表的排序方式作为参数。例如
repo.sort(sort by field)
repo.sort(sort by field but ascending)
repo.sort(sort by field descending and by another field ascending)
我的想法是,我应该制作一个重载的排序函数,根据参数的数量,它应该以某种方式运行,但我觉得我把它搞得过于复杂了想知道是否有更简单的方法。提前谢谢。
Comparator是一个接口,因此它必须具有统一的方法定义。有几种方法可以处理您想要的内容,但不能通过预定义方法签名中的参数:
- 创建几个自定义
Comparator
,每个字段一个 - 创建一个具有预定义设置的
Comparator
,然后添加一个setter方法使其使用这些配置
我想补充一点,您不应该编写Comparator
来处理反向排序。通过Collections
实用程序使用可用的方法,命名为Collections.reverse()