Java 開發過程當中發現的一個小問題java.lang.NullPointerException

if (detailtable.length > 0) {
	DetailTable dt = detailtable[i];// 針對每個明細表遍歷
		Row[] s = dt.getRow();// 獲取每個明細表的行數組
		log.info("明細表長度detail table length:"+s.length);
          Common_OA_Detail[]  detailsobject=new Common_OA_Detail[s.length];//根據行數的多少實例化對象,這就是問題的來源。
                for (int j = 0; j < s.length; j++) {
		   Row r = s[j];// 針對每一行
		   tab_details[j].setITMNO(Integer.toString(j)); //設置序列號
		   tab_details[j].setBSCHL("40");// 借賬
		   tab_details[j].setFYLB("差旅費用");// 費用類別
	         // 獲取明細表中的報銷總類別0-小類別1-總帳代碼2-報銷金額3-成本中心4-內部訂單5
		   titlewenben = common.getDeptname() + common.getOaname() + "報銷" + "費用";
		   detailsobject[j].setZzcode(selectname);// 獲取明細表的總帳代碼
		   tab_details[j].setSGTXT(titlewenben);
		}
}

問題的緣由在於:java

Common_OA_Detail[]  detailsobject=new Common_OA_Detail[s.length];//根據行數的多少實例化對象,這就是問題的來源。

 我雖然聲明瞭detailobject 爲數組類型,而且實例化了。可是我沒有實例化這個數組的元素 對象 Common_OA_Detail,而後經過對象來對數組賦值。若是像下面這樣:數組

detailsobject[j].setZzcode(selectname);// 獲取明細表的總帳代碼

這樣就會報錯。code

正確的應該是先實例化對象,而後將對象賦值到數組裏面。對象

Common_OA_Detail c_o_d=new Common_OA_Detail();
c_o_d.set[...]=""

由於這已經不是基本類型了,而是對象了,因此不能像基本類型那樣賦值get

相關文章
相關標籤/搜索