Java 检查remoteMessage.getData().get(";Pic";)!=无效的

Java 检查remoteMessage.getData().get(";Pic";)!=无效的,java,android,firebase,Java,Android,Firebase,我正在使用Firebase云消息传递,其中一个参数是可选的。我有下面的方法 public void onMessageReceived(RemoteMessage remoteMessage) { if (remoteMessage.getData().size() > 0) { Log.d(TAG, "Message data payload: " + remoteMessage.getData()); String picUrl = null;

我正在使用Firebase云消息传递,其中一个参数是可选的。我有下面的方法

public void onMessageReceived(RemoteMessage remoteMessage) {
    if (remoteMessage.getData().size() > 0) {
        Log.d(TAG, "Message data payload: " + remoteMessage.getData());
        String picUrl = null;

        String toTel = remoteMessage.getData().get("To").toString();
        if (remoteMessage.getData().get("Pic") != null)
            picUrl = remoteMessage.getData().get("Pic").toString();
}
但是,我在if语句行遇到了一个异常

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String java.lang.String.toString()' on a null object reference

我如何才能成功地检查“Pic”是否有值?

我倾向于使用
containsKey
方法,而不是检查null,也许可以试试这个

if (remoteMessage.getData().containsKey("Pic")) {
    picUrl = data.get("Pic");
}

可能问题是
remoteMessage.getData().get(“To”).toString()
,或者它应该只被调用onceno,没有if语句也可以正常工作,这个异常确实显示了if语句的行号,没有if语句也可以正常工作-请编辑您的问题以显示您的意思,没有if语句也可以正常工作-发布堆栈跟踪并告诉我们哪一行引发了异常。我不相信这段代码引发了这个异常。我怀疑真正的代码是if(remoteMessage.getData().get(“Pic”).toString()!=null)。注意
.toString()
调用。