gpt4 book ai didi

java - 列表中的通用可比对象出现问题

转载 作者:行者123 更新时间:2023-11-29 08:07:58 26 4
gpt4 key购买 nike

我想让下面的方法不显示关于使用原始类型的警告,但我想不出告诉它做我想做的事的语法。这是当前的方法:

static long countSplitInversions(List<? extends Comparable> list) {
long inversions = 0;

final int leftLimit = list.size() / 2;
int left = 0;
int right = leftLimit;

for (int i = 0; i < list.size(); i++) {
if (left == leftLimit || right == list.size()) {
break;
}
if (list.get(left).compareTo(list.get(right)) <= 0) {
left++;
} else {
right++;
inversions += leftLimit - left;
}
}

return inversions;
}

当我更改签名以避免警告时:

static <T> long countSplitInversions(List<? extends Comparable<? super T>> list)

那么 compareTo 所在的行将不会编译错误:

Method compareTo in interface java.lang.Comparable<T> cannot be applied to given tyes
required: capture #1 of ? super T
found: java.lang.Comparable<? super T>

最佳答案

考虑将您的方法签名更改为...

static <T extends Comparable<? super T>> long countSplitInversions(List<T> list) {

关于java - 列表中的通用可比对象出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9854588/

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