Java 检查remoteMessage.getData().get(";Pic";)!=无效的
我正在使用Firebase云消息传递,其中一个参数是可选的。我有下面的方法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;
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()
调用。