ToString on Object生成错误

时间:2013-05-19 22:41:26

标签: java object tostring

我正在尝试显示我的对象内容。 我用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,以便正确显示我的用户,但是......

你知道吗? 谢谢。

1 个答案:

答案 0 :(得分:-1)

似乎您收到错误的原因是因为userReadables最初设置为空字符串。在捕获中,你有

catch(Exception e) {
   userReadables = null;
}

并且由于userReadables已经为null,因此它在执行任何其他操作之前调用Exception。使它成为与程序相关的东西。将其更改为

String userReadables = " ";

这样它至少会被注册为空格,而不是空。

希望这有帮助!