2017-03-29 61 views
0

我有一個POJO的ArrayList,我從JDBC檢索的結果集中填充,但是在while循環中的第一個System.out.print語句中,使用getStatus方法完全檢索數據,但是,當在那個之後的循環中檢查時,getStatus的返回值爲null。Pojo值沒有被正確檢索

P.S.狀態字段是一個帶有普通舊式getter和setter的String對象,沒什麼特別。

while (result.next()) { 
    POJO recordPojo = new POJO(); 
    recordPojo.setRefNo(result.getString(3)); 
    recordPojo.setSubmittedBy(result.getString(1)); 
    recordPojo.setCreatedDate(result.getDate(2).toString()); 
    recordPojo.setGuid(result.getString(4)); 
    recordPojo.setStatus(result.getString(5)); 
    System.out.println(" DBOPERATIONS RESULT Ref No ----" + result.getString(3) + "  ===== " + result.getString(5) + " ====== " + recordPojo.getStatus()); 
    arryObj.add(recordPojo); 
} 
POJO x; 
for (int k = 0; k < arryObj.size(); k++) { 
    x = (POJO) arryObj.get(k); 
    System.out.println(" DBOPERATIONS Ref No ----" + x.getRefNo() + "  ===== " + x.getSubject()); 
} 
+0

請問您可以爲我們提供您的意見嗎?在您的代碼中有一些奇怪的東西:( –

+0

在從結果集中加載之前,您的arryObj中是否有東西?還有,您的第二個循環不是打印狀態,它是打印主題,它不會在第一個循環中設置。 –

+0

你能告訴我們完整的代碼片段嗎?結果的類型是什麼? –

回答

3

我認爲這就像一個錯字(主題不是狀態),但我會給你一個解釋短:我認爲你是錯在循環x.getSubject()的第二個System.out.println(),你永遠不要請在填寫此字段之前填寫您的結果,因此很明顯它是null

所以,你有兩個選擇:

  • 填補了該領域,當你循環的結果是
  • 或打印正確的領域,而不是x.getSubject(),你應該打印x.getStatus()(他們是不一樣的)