我正在尝试使用此方法,但我在
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