这是我正在研究的课程:
public class Thing<T extends Comparable<? super T>> {
private Map<String, List<SourcedValue<T>>> properties;
}
然后,
SourcedValue
是这样的:public class SourcedValue<T extends Comparable<? super T>>
implements Comparable<****?*****> {
private T value;
private List<Sources> sources;
@Override
public int compareTo(SourcedValue<****?****> other) {
return value.compareTo(other);
}
}
我要在
***?***
中放入什么?我需要做的是在创建
List<SourcedValue<T>>
并填充的某些convert方法中对Thing
中的Thing
进行排序其
properties
(以及每个属性的List<SourcedValue<T>>
)。 最佳答案
我不确定这是否对您有帮助,但这是我看到的实现您的要求的一种方法。如果能帮到您,我会很高兴。
public class SourcedValue<T extends Comparable<? super T>>
implements Comparable<SourcedValue<? super T>> {
private T value;
private List<Integer> sources;
@Override
public int compareTo(SourcedValue<? super T> o) {
return value.compareTo((T)o.value);
}
}
另外,在这里使用
super
似乎是多余的。甚至以下解决方案也应产生相同的结果public class SourcedValue<T extends Comparable<T>>
implements Comparable<SourcedValue<T>> {
private T value;
private List<Integer> sources;
@Override
public int compareTo(SourcedValue<T> o) {
return value.compareTo(o.value);
}
}
关于java - 在这种情况下如何声明Java Comparable,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56498727/