2013-05-19 2 views
-6

Я пытаюсь отобразить содержимое объекта. Я использую ORM. У меня есть служба доставки, которая содержит список пользователей. В delivery.toString() Я делаю это:ToString on Object генерирует ошибку

`  
@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 уже нуль, это вызов Exception, прежде чем он делает что-нибудь еще. Сделайте это чем-то связанным с программой. Измените его на

String userReadables = " "; 

таким образом он будет хотя бы зарегистрирован как пробел, а не null.

Надеюсь, это поможет!

+0

PS Что такое бродячий знак в верхней части и нижней части кода? – user2277872

+1

Вы пропустили 'String usersReadables =" ";' в начале? –

+0

@all Это не журнал ошибок. В catch, Exception e.getMessage() возвращает null. Невозможно понять эту ошибку. Я использую отладчик, но кажется, что мой User.toString() вызывает Delivery.toString(), и я в бесконечном времени ... – Vadorequest