Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 写入静态方法以复制二维数组_Java - Fatal编程技术网

Java 写入静态方法以复制二维数组

Java 写入静态方法以复制二维数组,java,Java,我试图编写一个静态方法,生成并返回作为参数传递的二维int数组的副本。 t这是我写的代码,但不确定是否正确 public class Array { private static int[][] arraycopy; public Array(){ arraycopy =new int[0][0]; } public static int makecopy(int[][]original){ for(int i=0

我试图编写一个静态方法,生成并返回作为参数传递的二维int数组的副本。 t这是我写的代码,但不确定是否正确

public class Array {
     private static int[][] arraycopy;


     public Array(){
         arraycopy =new int[0][0];

     }

     public static int makecopy(int[][]original){
        for(int i=0;i<original.length;i++) {
            arraycopy[i]=original[i];
         for(int j=0;i<original[i].length; j++){
             arraycopy[j]=original[j];
         }
     }
        return arraycopy[i][j];
     }
公共类数组{
私有静态int[][]阵列复制;
公共数组(){
arraycopy=新整数[0][0];
}
公共静态int-makecopy(int[]原件){

for(int i=0;i
return arraycopy[i][j]
在那些
for
循环的范围之外没有任何意义:
i
j
仅在各自的循环中定义。这就是为什么会出现错误的原因。幸运的是,在这一点上,您并不需要它们

您希望将返回类型更改为
int[][]
,将返回语句更改为仅
return arraycopy;

直接回答:
i和j只存在于它们声明的范围内,这意味着循环:

for(int i=0;i<original.length;i++) {
            arraycopy[i]=original[i];
         for(int j=0;i<original[i].length; j++){
             arraycopy[j]=original[j];
         }
     }

将此作为第一步。

在mbyd如何将拷贝数组初始化为其正确大小我当前有公共静态int[][]makeCopy(int[][]original){arraycopy=new int[original.length][];
public static int makecopy(int[][]original){
    int i, j;
    for( i=0;i<original.length;i++) {
        arraycopy[i]=original[i];
     for( j=0;i<original[i].length; j++){
         arraycopy[j]=original[j];
     }
  }
    return arraycopy[i][j];
 }
public static int[][] makecopy(int[][]original){
    int i, j;
    int arraycopy[][] = new int[original.length][original[0].length];
    for( i=0;i<original.length;i++) 
    {
        for( j=0;j<original[i].length; j++)
        {
             arraycopy[i][j] = original[i][j];
        }
    }
    return arraycopy;
 }