2015-12-04 152 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()的東西會給你一個空學生的數組,你可以在你創建每個數組之後填充。

相關問題