Java家庭作业.我帮助理解为什么我的代码会编译但在编译器中留下关于数组问题的注释?

Div*_*els 5 java

注意:ArrayOperation.java使用未经检查或不安全的操作.注意:使用-Xlint重新编译:取消选中以获取详细信息.

public class ArrayOperation{
public static void sort(Comparable[] c){
    for (int i=1;i<c.length;i++){
    Comparable key = c[i];
    int p = i;
    while (p>0 && key.compareTo(c[p-1])<0){
        c[p]=c[p-1];
        p--;
    }
    c[p] = key;
    }
}
Run Code Online (Sandbox Code Playgroud)

}

Per*_*ror 7

你必须提供类型参数java.lang.Comparable的,如果您检查APIjava.lang.Comparable的,它需要一个类型参数.

Interface Comparable<T>
Run Code Online (Sandbox Code Playgroud)

因此,如果您希望编译时警告消失,则您的方法签名应该是.

public static void sort(Comparable<SomeType>[] c){
Run Code Online (Sandbox Code Playgroud)