如何创建一个排序函数,该函数将对其进行排序的方法作为参数



我有一个实体列表,我希望能够使用自定义.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是一个接口,因此它必须具有统一的方法定义。有几种方法可以处理您想要的内容,但不能通过预定义方法签名中的参数:

  1. 创建几个自定义Comparator,每个字段一个
  2. 创建一个具有预定义设置的Comparator,然后添加一个setter方法使其使用这些配置

我想补充一点,您不应该编写Comparator来处理反向排序。通过Collections实用程序使用可用的方法,命名为Collections.reverse()

最新更新