重写toString()给出错误[重复]

问题描述 投票:2回答:1

此问题已经在这里有了答案:

             @Override
                protected void onHandleIntent(Intent intent) {
                    if (intent != null) {
                        final String action = intent.getAction();
                        if (ACTION_UPDATE_SERVER.equals(action)) {
                            final Server server = (Server)intent.getSerializableExtra(SERVER);
                            handleActionUpdateServer(server);
        [...]
    }
    }
}

服务器是我在覆盖toString()的地方创建的模型类。

在线

 final Server server = (Server)intent.getSerializableExtra(SERVER);

我收到此错误

[package].[app] Java.lang.NullPointerException exception: cannot evaluate server.toString()

由于此错误,似乎无法检索额外的序列化。

但是如果我删除toString()的实现,那么就没有错误。问题是我需要重写toString以便listView在列表中显示服务器类的对象时使用。 (在运行以填充列表时,toString()方法没有问题。

我的toString实现看起来像这样:

 @Override
        public String toString() {
            StringBuilder strb = new StringBuilder(serverTitle);
            strb.append(" | Monitored: ");
            strb.append(isMonitored);
            strb.append(" | Online: ");
            strb.append(isOnline);
            return strb.toString();
        }

为什么当我自己覆盖server.toString时,它无法评估server.toString,为什么它甚至试图这样做?

请勿将其标记为nullPointerException问题的重复项,因为这根本没有帮助。该应用程序不会在发生此错误后崩溃,它会继续运行,对我来说,该错误似乎与我对toString()的实现有关

@@ Override protected void onHandleIntent(Intent intent){if(intent!= null){final String action = intent.getAction(); ...

java android string tostring
1个回答
1
投票

看起来像serverTitle = null,因为新的StringBuilder(null)抛出NullPointerException,并且如果server = null,我认为错误消息必须完全不同。请检查serverTitle值或使用以下代码:

© www.soinside.com 2019 - 2024. All rights reserved.