gpt4 book ai didi

java - 在这种情况下如何声明 Java Comparable

转载 作者:行者123 更新时间:2023-12-02 04:43:48 26 4
gpt4 key购买 nike

这是我正在学习的类(class):

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>> 进行排序在 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com