2013-05-19 46 views
-6

我試圖顯示我的對象內容。 我使用ORM。我有Delivery的用戶列表。在delivery.toString()我有這樣的:對象的ToString生成錯誤

`  
@Override 
public String toString() { 
    String usersReadables = ""; 

    try { 
     CloseableIterator<User> userIterator = this.getUsers().closeableIterator(); 

     try { 
      // For each user. 
      while (userIterator.hasNext()) { 
       usersReadables += usersReadables.length() > 0 ? ", " : ""; 
       User user = userIterator.next(); 
       usersReadables += user.getName(); 
      } 
     } finally { 
      // Always close the iterator, else the connection from the database 
      // isn't destroyed. 
      try { 
       userIterator.close(); 
      } catch (SQLException e) { 
       Log.e(DatabaseHelper.class.getName(), e.getMessage(), e); 
      } 
     } 
    } catch (Exception e) { 
     usersReadables = null; 
    } 

    return "Delivery [deliveryId=" + deliveryId + ", round=" + round + ", typeDelivery=" + typeDelivery + ", priority=" + priority + ", deliveryOver=" + deliveryOver + ", receiverAvailable=" + receiverAvailable + ", signature=" + signature + ", dateOver=" + dateOver + ", latitude=" + latitude + ", longitude=" + longitude + ", users=" + usersReadables + ", sender=" + sender + ", receiver=" + receiver + "]"; 
}` 

但是,如果我嘗試做usersReadables + = user.toString(); 程序生成一個異常。我不明白爲什麼。 我已經覆蓋User.toString也爲我的用戶正確顯示,但...

你有什麼想法嗎? 謝謝。

+0

哪個異常正在提出? –

+0

@DanielPereira沒有錯誤,它似乎是無限的... 始終與deboguer調用相同的路線。 – Vadorequest

回答

-1

看起來好像你得到錯誤的原因是因爲userReadables最初設置爲空字符串。在捕獲中,你有

catch(Exception e) { 
    userReadables = null; 
} 

並且由於userReadables已經是null,所以它在它做其他事情之前調用Exception。使它與程序有關。將其更改爲

String userReadables = " "; 

這樣它至少會被註冊爲空格,而不是空值。

希望這會有所幫助!

+0

PS什麼是代碼頂部和底部的流浪記號? – user2277872

+1

您是否錯過了'String usersReadables =「」;'在開始時? –

+0

@all這不是錯誤日誌。在catch中,異常e.getMessage()返回null。沒有辦法讓我理解這個錯誤。 我正在使用調試器,但它似乎我的User.toString()調用Delivery.toString()和我在無限的時間... – Vadorequest