gpt4 book ai didi

Java如何编写泛型

转载 作者:行者123 更新时间:2023-12-02 05:16:43 25 4
gpt4 key购买 nike

public static <T extends Comparable<T>> T search(T[] a,T first,T last,T key)
{
T result;
if(first.compareTo(last)>0)
result = -1;
else{
int mid = (Integer)(first+last)/2;
if(key==a[mid])
result = mid;
else if(key<a[mid])
result = search(a,first,mid - 1,key);
else if(key>a[mid])
result = search(a,mid+1,last,key);
}
return result;
}

这是我正在尝试编写的递归二分搜索。我正在尝试使用泛型,但我对此非常天真。我遇到的所有错误都是类型转换错误。除非它说 (mid-1)。那里的错误是“推论变量 T 具有不兼容的边界”。我想学习如何解决这些问题。 谢谢。

最佳答案

您似乎误解了 Comparable 接口(interface);仅仅因为某些东西具有可比性并不意味着转换为Integer就会成功。或者您可以使用 + 运算符。如果您确定能够将您的值相加,您可能需要查看 Number提供 intValue() 函数的接口(interface)。

关于Java如何编写泛型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26883240/

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