我有两个数组:" 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数组的长度。
非常感谢一些解释。
答案 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
?它应该是函数的参数,我想。