有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

整数的java向下转换接口

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向下转换为整数类型,因为a是可比较的类型。然后使用swap方法,该方法采用整数类型,但这是非法的


共 (1) 个答案

  1. # 1 楼答案

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

    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;        
    }