我有一个名为MyClass的类,其中包含带有getter和setter的各种属性。我有一个方案,可以根据要在运行时确定的属性以升序或降序对列表进行排序。现在,我拥有的是
li.sort(Comparator.comparing(MyClass::getMyFunc).reversed());
在上述情况下,我必须使用if条件来检查必须使用asc或desc对其进行排序的属性,即getMyFunc
。是否可以在运行时提供方法引用,而不是在else语句中检查它?
编辑:我从用户端获得输入。因此,如果用户选择按asc或desc顺序按日期排序属性,那么我的代码应该像
li.sort(Comparator.comparing(MyClass::getGeneratedDate).reversed());
对于ASC和DESC订单,我将不得不使用like
if("asc".equals(type))
li.sort(Comparator.comparing(MyClass::getGeneratedDate));
else
li.sort(Comparator.comparing(MyClass::getGeneratedDate).reversed());