Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.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/3/xpath/2.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,我正在试着运行这个 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的答案。