就像标题说的那样,我正在尝试以一种通用的方式创建一个多维数组的副本,准确地说是二维数组,这样我就可以在其他地方重用它。
我将传递给它的类型很可能都是用户定义的,例如我有一个我希望以这种方式使用的 Tile 类。
我目前的问题是下面的代码:
在调试器中,您可以跟踪调用并查看数组中的元素是否已正确分配,但一旦返回结果,java 就会抛出此异常:
java.lang.ClassCastException: [[Ljava.lang.Object; 不能转换为 [[Lboard.Tile;
@SuppressWarnings("unchecked")
public static <T> T[][] clone(T[][] source) {
T[][] result = (T[][]) new Object[source.length][source[0].length];
for (int row = 0; row < source.length; row++) {
result[row] = Arrays.copyOf(source[row], source[0].length);
}
return result;
}
有人知道这样做的好方法吗?优化不是问题。
谢谢