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