【发布时间】:2019-07-29 16:57:48
【问题描述】:
我正在尝试创建一个实现可比较的类。当所有类元素都是整数时,一切正常。当我使用 String 并使用 comparing 而不是 comparingInt 时,我收到以下错误。
Comparator 类型的泛型方法比较(函数)的类型参数数量不正确;它不能用参数参数化
myClass 类型未定义此处适用的 getFrom(T)
public class myClass implements Comparable<myClass> {
@Column (name="From")
private String from;
@Column (name="To")
private String to;
@Column (name="With")
private String with;
@Column (name="amount")
private int amount;
// Setters, getters, constructor
Comparator<myClass > comp = Comparator.<myClass>comparing(myClass::getFrom)
.thenComparing(myClass::getTo)
.thenComparing(myClass::getWith)
.thenComparingInt(myClass::getAmount);
@Override
public int compareTo(myClass o) {
return comp.compare(this, o);
}
}
有人能指出我在这里可能缺少什么吗?
【问题讨论】:
-
删除泛型类型,它应该可以工作或明确
Comparator.<myClass, String>comparing... -
@michalk 当我明确写它时,它起作用了。你能解释一下为什么会这样吗?
标签: java comparator comparable