gpt4 book ai didi

java - 我可以将以下代码转换为使用泛型吗?

转载 作者:太空狗 更新时间:2023-10-29 22:33:22 24 4
gpt4 key购买 nike

我正在将一个应用程序转换为使用 Java 1.5,并且发现了以下方法:

  /**
* Compare two Comparables, treat nulls as -infinity.
* @param o1
* @param o2
* @return -1 if o1<o2, 0 if o1==o2, 1 if o1>o2
*/
protected static int nullCompare(Comparable o1, Comparable o2) {
if (o1 == null) {
if (o2 == null) {
return 0;
} else {
return -1;
}
} else if (o2 == null) {
return 1;
} else {
return o1.compareTo(o2);
}
}

理想情况下,我想让该方法接受两个相同类型的 Comparables,是否可以转换它以及如何转换?

我认为以下方法可以解决问题:

protected static <T extends Comparable> int nullCompare(T o1, T o2) {

但它未能消除 IntelliJ 中的警告“未经检查的调用 'compareTo(T)' 作为原始类型 'java.lang.Comparable' 的成员”:

return o1.compareTo(o2);

最佳答案

将其更改为:

protected static <T extends Comparable<T>> int nullCompare(T o1, T o2) {

你需要它,因为 Comparable 本身就是一个通用类型。

关于java - 我可以将以下代码转换为使用泛型吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59107/

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