gpt4 book ai didi

java - 未经检查的从通用 T 转换为可比较的阻止编译

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:14:09 24 4
gpt4 key购买 nike

我应该在没有递归的情况下实现合并排序。我已经完成了所有爵士乐,但是由于家庭作业范围之外的原因,类(class)没有编译。这是问题所在:

这方面直接取自教科书...

 public <T extends Comparable<? super T>> void Mergesort(T[] a){
T[] tmpArray =(T[]) new Comparable[a.length];

1 warning found:

File: /Users/OcastaEshu/Java/NonRecursiveMergesort.java [line: 22]

Warning: /Users/OcastaEshu/Java/NonRecursiveMergesort.java:22: warning: [unchecked] unchecked cast

found : java.lang.Comparable[] required: T[]

最佳答案

如果你想避免警告,你可以这样做:

public static <T extends Comparable<? super T>> void Mergesort(T[] a, Class<T[]> clazz) { 
T[] tmpArray = clazz.cast(Array.newInstance(a.getClass().getComponentType(), a.length));
}

其中 classOfelement 是 a.getClass()。我同意,它很丑,你最好使用 @SuppressWarnings 而不是那种代码。

关于java - 未经检查的从通用 T 转换为可比较的阻止编译,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9528057/

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