gpt4 book ai didi

java - 我可以使用 还是仅使用

转载 作者:行者123 更新时间:2023-12-01 18:06:35 26 4
gpt4 key购买 nike

我可以使用 <T implements ..>而不是<T extends...>

我不能使用 <Comparable>只是没有扩展/实现?

为什么或为什么不?

class SomeClass
{
public static <T extends Comparable> somemethod(T[] a)
{
// do stuff
}
}

最佳答案

Comparable 是一个通用类型(以及一个接口(interface)),因此您必须扩展并且不能>implement - 这是Java泛型的工作方式,而且你的方法缺少返回签名。您可以使用 Lower Bounded Wildcard喜欢

public static <T extends Comparable<? super T>> T[] somemethod(T... a) {
Arrays.sort(a);
return a;
}

它应该按您的预期工作1。例如,

public static void main(String[] args) {
System.out.println(Arrays.toString(somemethod(4, 3, 1, 2)));
System.out.println(Arrays.toString(somemethod(new Integer[] { 8, 7, 6, 5 })));
}

输出

[1, 2, 3, 4]
[5, 6, 7, 8]

1这里,一个 variadic (varargs) function排序,但如果您愿意,您可以使用数组。

关于java - 我可以使用 <T Implements Comparable> 还是仅使用 <Comparable>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35980808/

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