我正在尝试显示我的对象内容。 我用ORM。我有一个包含用户列表的交付。在delivery.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 + "]";
}`
但是如果我尝试做userReadables + = user.toString(); 该程序生成一个例外。我不明白为什么。 我也覆盖了User.toString,以便正确显示我的用户,但是......
你知道吗? 谢谢。答案 0 :(得分:-1)
似乎您收到错误的原因是因为userReadables最初设置为空字符串。在捕获中,你有
catch(Exception e) {
userReadables = null;
}
并且由于userReadables已经为null,因此它在执行任何其他操作之前调用Exception。使它成为与程序相关的东西。将其更改为
String userReadables = " ";
这样它至少会被注册为空格,而不是空。
希望这有帮助!