Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/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 为什么我的代码会生成NullPointerException?_Java - Fatal编程技术网

Java 为什么我的代码会生成NullPointerException?

Java 为什么我的代码会生成NullPointerException?,java,Java,我是java编程的初学者,所以我不知道空指针异常,请任何人帮助我如何解决这种类型的错误 -我有两个类,一个名为Student.java,另一个名为SrDemo.java -我在Student类中编写gatter satter并使用这是SrDemo类,但是当我使用数组调用方法时,它的generate null指针异常如何解决这个问题 我有我的评论文本解决方案,但我希望这个解决方案与使用数组,所以如果有人知道告诉我提前感谢。。 下面是这两个类的代码 SrDemo.java ..........

我是java编程的初学者,所以我不知道空指针异常,请任何人帮助我如何解决这种类型的错误 -我有两个类,一个名为Student.java,另一个名为SrDemo.java -我在Student类中编写gatter satter并使用这是SrDemo类,但是当我使用数组调用方法时,它的generate null指针异常如何解决这个问题 我有我的评论文本解决方案,但我希望这个解决方案与使用数组,所以如果有人知道告诉我提前感谢。。 下面是这两个类的代码

  SrDemo.java 
...........
public class SrDemo {
    public static void main(String args[]){
        Student sd[]=new Student[2];
        sd[0].setName("name");
        System.out.println(sd[0].getName());
        /*Student sd;
        for(int i=0;i<5;i++) {
            sd = new Student();
            sd.setName("jagdish " + i);
            sd.setCity("Baroda " + i);
            System.out.println(sd.getName());
            System.out.println(sd.getCity());
        }*/
    }
}

Student.java
...........

public class Student {
    private String name;
    private String city;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }
}


error
.......
Exception in thread "main" java.lang.NullPointerException
    at Serialize.SrDemo.main(SrDemo.java:8)
SrDemo.java
...........
公共类SrDemo{
公共静态void main(字符串参数[]){
学生sd[]=新生[2];
sd[0].setName(“名称”);
System.out.println(sd[0].getName());
/*学生服务生;

对于(int i=0;i,您创建了一个数组,该数组接受学生作为其输入,但从未将其放入其中。因此,
Students[0].setName(“name”)
从未实际设置对象的name属性。 结果是,您也无法访问它


您已经指出了解决方案:迭代地用student填充数组,尽管到目前为止您只是在for循环中打印student的属性
将为您提供一个包含空学生的数组,您也可以在创建每个学生后填充该数组。

哪一行是第8行?在初始化学生数组后,您必须初始化每个元素:Student sd[]=new Student[2];sd[0]=new Student();sd[0].setName(“name”);sd[0].setName(“name”)这是第8行谢谢先生我得到了答案利亚兹·阿赫莫多夫谢谢