Java 获取空指针异常。为什么?
我正在试着运行这个Java 获取空指针异常。为什么?,java,Java,我正在试着运行这个 package mine; public class MyFantasticJavaClass { private static String[] myotherarray; public static void main(String[] args) { String[] myarray = {"ball","pen","is","large"}; for(int i=0;i<myarray.length;i++){
package mine;
public class MyFantasticJavaClass {
private static String[] myotherarray;
public static void main(String[] args) {
String[] myarray = {"ball","pen","is","large"};
for(int i=0;i<myarray.length;i++){
myarray[i] = myotherarray[i];
}
}
}
您尚未初始化myotherarray 您的数组必须遵循
String[]myotherarray=new String[length]
格式,然后才能在其中添加任何内容
使您避免进一步的错误;您无法以尝试过的方式从静态main方法中读取字段myotherarray
,因为静态方法不会运行字段myotherarray
所需的MyFantasticJavaClass
实例化
您需要做的是添加到main方法中
MyFantasticJavaClass name = new MyFantasticJavaClass()
String[] myarray = {"ball","pen","is","large"};
name.myotherarray = new String[myarray.length];
for(int i=0;i<myarray.length;i++){
myarray[i] = name.myotherarray[i];
}
MyFantasticJavaClass名称=新的MyFantasticJavaClass()
字符串[]myarray={“ball”、“pen”、“is”、“large”};
name.myotherarray=新字符串[myarray.length];
对于(int i=0;i您尚未初始化myotherarray
您的数组必须遵循String[]myotherarray=new String[length]
格式,然后才能在其中添加任何内容
为了避免出现进一步的错误,您不能像以前那样从静态main方法中读取字段myotherarray
,因为静态方法不会运行字段myotherarray
所需的MyFantasticJavaClass
实例化
您需要做的是添加到main方法中
MyFantasticJavaClass name = new MyFantasticJavaClass()
String[] myarray = {"ball","pen","is","large"};
name.myotherarray = new String[myarray.length];
for(int i=0;i<myarray.length;i++){
myarray[i] = name.myotherarray[i];
}
MyFantasticJavaClass名称=新的MyFantasticJavaClass()
字符串[]myarray={“ball”、“pen”、“is”、“large”};
name.myotherarray=新字符串[myarray.length];
对于(int i=0;i您需要初始化myotherarray
,然后才能从中读取。当您说myarray[i]=myotherarray[i]
,myotherarray
尚未设置为任何值。您希望从中读取什么值?您需要初始化myotherarray
才能从中读取。当您说myarray[i]=myotherarray[i]
,myotherarray
尚未设置为任何值。您希望从中读取什么值?myotherarray
尚未初始化,因此它等于null。当您尝试使用null变量执行任何操作时,您的JVM(java虚拟机)不知道该做什么,因此它会引发异常。因此,您应该像这样初始化数组:
private static String[] myotherarray = new String[5]; // change '5' to however many Strings you want your list to hold.
您可能需要阅读以进一步了解。myotherarray
尚未初始化,因此它等于null。当您尝试使用null变量执行任何操作时,您的JVM(java虚拟机)不知道该做什么,因此它会引发异常。因此,您应该像这样初始化数组:
private static String[] myotherarray = new String[5]; // change '5' to however many Strings you want your list to hold.
你可能想通过阅读加深理解。试试这个
package mine;
public class MyFantasticJavaClass {
private static String[] myotherarray;
public static void main(String[] args) {
String[] myarray = {"ball","pen","is","large"};
myotherarray = new String[myarray.length]; //myarray.length is the size of the "other" array
for(int i=0;i<myarray.length;i++){
myarray[i] = myotherarray[i];
}
}
}
包装矿山;
公共类MyFantasticJavaClass{
私有静态字符串[]数组;
公共静态void main(字符串[]args){
字符串[]myarray={“ball”、“pen”、“is”、“large”};
myotherarray=新字符串[myarray.length];//myarray.length是“其他”数组的大小
对于(inti=0;i试试这个
package mine;
public class MyFantasticJavaClass {
private static String[] myotherarray;
public static void main(String[] args) {
String[] myarray = {"ball","pen","is","large"};
myotherarray = new String[myarray.length]; //myarray.length is the size of the "other" array
for(int i=0;i<myarray.length;i++){
myarray[i] = myotherarray[i];
}
}
}
包装矿山;
公共类MyFantasticJavaClass{
私有静态字符串[]数组;
公共静态void main(字符串[]args){
字符串[]myarray={“ball”、“pen”、“is”、“large”};
myotherarray=新字符串[myarray.length];//myarray.length是“其他”数组的大小
对于(int i=0;我已经初始化了myotherarray
?为了让它有意义,myotherarray
必须是一个数组,其元素数量至少与myarray
相同。相反,它只是……嗯,什么都没有。你初始化了myotherarray
?为了让它有意义,myotherarray
必须是一个数组n数组中至少有与myarray
一样多的元素。相反,它只是…嗯,什么都没有。+1。这是唯一一个试图帮助OP的答案。+1。这是唯一一个试图帮助OP的答案。