2015-12-04 110 views
-3

我是java编程的初学者,所以我不知道有关空指针异常请任何机构帮助我如何解决这种类型的错误 -i有两个一个类名为Student.java和另一个与SrDemo.java - 我写的学生类中的gatter satter和使用这是SrDemo类但是当我调用使用数组的方法它生成空指针异常我怎么能解决这个 和我有解决方案这与我评论的文本,但我想这个解决方案使用数组请如果有人知道的告诉我在此先感谢.. 下面这是我的我的两个类为什么我的代码生成NullPointerException?

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) 
+0

哪一行是第8行? – dbeer

+2

初始化学生数组后,您必须初始化每个元素: 学生sd [] = new Student [2]; sd [0] = new Student(); sd [0] .setName(“name”); –

+0

sd [0] .setName(“name”); //这是行号8 – Jagdish

回答

1

您创建一个数组,这需要S码tudents作为它的输入,但你从来没有将河口放在那里。所以students[0].setName("name")永远不会设置对象的名称属性。 结果是,你也无法访问它。

您已经指出了解决方案:尽管您至今只是在for循环中打印学生的属性,但却反复向学生填充阵列。使用类似students[i] = new Student()的东西会给你一个空学生的数组,你可以在你创建每个数组之后填充。

相关问题