Groovy 按姓名升序排序,按年龄降序排序

Groovy sort list asc by name and desc by age

如何按相反顺序按 2 个字段对列表进行排序?我正在尝试按名称(升序)和年龄(降序)对列表进行排序。我试过:

list.sort { -it }

下降,

list.sort { it }

用于升序,但不考虑两个不同的字段。是否可以像这样对列表进行排序?

类似

def list = [ [name:1, age:2], [name:2, age:10], [name:1, age:20] ]

list = list.sort{ a, b -> a.name <=> b.name ?: b.age <=> a.age }

assert [[name:1, age:20], [name:1, age:2], [name:2, age:10]] == list