在JAVA中处理数组

时间:2017-02-20 22:55:03

标签: java android arrays

我有两个数组:" newArray"和#34; oldArray"。我有三种方法:methodA,methodB和methodC。在methodA,我分配oldArrays值并调用methodB。

void methodA(){
     oldArray = {"element1", "element2", "element3"};
     methodB(oldArray); 
}

在methodB中,我初始化newArray并将oldArray的每个元素复制到它。

void methodB(String[] array){
    newArray = new String[array.length];
    System.arraycopy(array, 0, newArray, 0, array.length);
}

然后我调用methodC来打印newArray的值:

void methodC(){
    for(String element : newArray){
        System.out.println(element + "\n");
    }
}

当我尝试运行时,我得到NullPointerException:尝试获取null数组的长度。

非常感谢一些解释。

2 个答案:

答案 0 :(得分:1)

试试这个方法

public static int[] copyOf(int[] original,int newLength)

其中:

original - 这是要复制的数组。

newLength - 这是要返回的副本的长度。

在你的情况下:

void methodB(String[] array){
newArray.copyOf(array, array.size()); }

但是如果您提供更多信息会更好,比如复制错误日志以了解您获取空指针异常的方法

答案 1 :(得分:1)

在以下代码段中 -

void methodC(){
    for(String element : newArray){
        System.out.println(element + "\n");
    }
}

什么是newArray?它应该是函数的参数,我想。