繁体   English   中英

compareTo的通用可比较类型

[英]Generic Comparable type for compareTo

我有一个名为getMember的方法,该方法可能返回任何Comparable对象,String,Integer等。我不知道该用什么作为类型参数,所以compareTo将起作用。 下面的代码不起作用

Comparable<? extends Comparable<?>> m1 = column.getMember(o1);
Comparable<? extends Comparable<?>> m2 = column.getMember(o2);

int compareTo = m1.compareTo(m2);

如果我不清楚,则m1和m2将始终是同一类型。 没有类型参数的比较效果很好,我只想知道要放在<>中的内容

我认为您这里需要的是通用方法 无论此段代码采用哪种方法,都必须泛化。 这是我最好的镜头,没有getMember方法的资料。

public <T extends Comparable<? super T>> void doSomethingTheOPWants() {
    ...
    T m1 = column.getMember(o1);
    T m2 = column.getMember(o2);
    int compareTo = m1.compareTo(m2);
}

以我目前对代码的了解,我认为我无法创建相关/有价值的测试,因此我将其留给OP处理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM