java – Generic Method无法正常工作

我正在尝试使用此方法,但我在
Eclipse中收到错误,说类型参数不正确,它告诉我更改方法签名.有什么理由吗?

/**Creates an independent copy(clone) of the T array.
 * @param array The 2D array to be cloned.
 * @return An independent 'deep' structure clone of the array.
 */
public static <T> T[][] clone2DArray(T[][] array) {
    int rows=array.length ;

    //clone the 'shallow' structure of array
    T[][] newArray = array.clone();

    //clone the 'deep' structure of array
    for(int row=0;row<rows;row++){
        newArray[row]=array[row].clone();
    }

    return newArray;
}

最佳答案 您发布的copy2DArray方法似乎与广告一样有效.也许你错误地调用了这个方法?还要确保您没有使用基本类型而不是要复制的数组中的对象.换句话说,使用Integer而不是int.

以下是工作方法的示例:

public class Main {

    // ...
    // Your copy2DArray method goes here
    // ...

    public static void main(String[] args) {
        // The array to copy
        Integer array[][] = {
            {0, 1, 2},
            {3, 4, 5},
            {6, 7, 8}
        };

        // Create a copy of the array
        Integer copy[][] = clone2DArray(array);

        // Print the copy of the array
        for (int i = 0; i < copy.length; i++) {
            for (int j = 0; j < copy[i].length; j++) {
                System.out.print(copy[i][j] + " ");
            }

            System.out.println();
        }
    }
}

此代码将打印:

0 1 2 
3 4 5 
6 7 8 
点赞