Integer的Downcast接口

时间:2017-02-26 09:55:12

标签: java downcast

public static void InsertionSort(Comparable[] a, int length){
        for (int i = 1; i < length; i++){
            for(int j = i; j > 0; j--){
                if(a[j].compareTo(a[i]) > 0){
                    Integer b = (Integer)a;
                    swap(b, j, i);
                }
                else{
                    break;
                }
            }
        }       
    }

public static void swap(Integer[] myArr,int a, int b){
        int temp;
        temp = myArr[a];
        myArr[a] = myArr[b];
        myArr[b] = temp;        
    }

为什么不能将接口转发到实现它的实例?我想将a转发为Integer类型,因为它是一个类似的类型。然后使用采用Integer类型的swap方法,但这是非法的。

1 个答案:

答案 0 :(得分:0)

你不需要演员。如果你知道它是这种类型(整数),你首先会把它变成一个整数。

public static void insertionSort(Comparable[] a) {
    for (int i = 1; i < a.length; i++)
        for (int j = i - 1; j >= 0; j--)
            if (a[i].compareTo(a[j]) > 0)
                swap(a, i, j);
            else
                break;      
}

public static void swap(Comparable[] myArr, int a, int b) {
    Comparable temp = myArr[a];
    myArr[a] = myArr[b];
    myArr[b] = temp;        
}