我有一个具有通用属性的类。
public class MyClass<T> {
T data;
MyClassType source;
ZonedDateTime updatedTime;
}
我正在尝试以相反的顺序对包含不同类型 T 的上述类的列表进行排序
myClassList.sort(Comparator.comparing(MyClass::getUpdatedTime).reversed()); //Doesn't work
错误:(372、61)java:不兼容的类型:无法推断类型变量 T,U(参数不匹配;com.quicken.subscriptionservice.dtos.UnifiedHistoryResponse 类中的无效方法引用方法 getUpdatedTime 不能应用于所需的给定类型:找不到参数:java.lang.Object 原因:实际参数列表和形式参数列表的长度不同)
错误:(372, 62) java: 无效的方法引用非静态方法 getUpdatedTime() 不能从静态上下文中引用
如果我在排序中删除“.reversed”,它可以正常工作。
此外,如果我修改我的类以使用 Object 类而不是下面的 Generic 类型,它就可以工作。
public class MyClass {
Object data;
MyClassType source;
ZonedDateTime updatedTime;
}
现在下面的排序工作
myClassList.sort(Comparator.comparing(MyClass::getUpdatedTime).reversed()); //Now works
如果有人可以帮助我了解如何获得反向排序以适用于通用案例并帮助我了解为什么会出现上述错误,我将不胜感激。
暮色呼如
繁星点点滴滴
相关分类