оператор! = не может быть применен к double, null - PullRequest
0 голосов
/ 11 июня 2018

Я получаю сообщение об ошибке по этому коду ниже:

  HashMap map = new HashMap();
  map.put("driver", userId);
  map.put("customer", customerId);
  map.put("rating", 0);
  map.put("timestamp", getCurrentTimestamp());
  map.put("destination", destination);
  map.put("location/from/lat", pickupLatLng.latitude);
  map.put("location/from/lng", pickupLatLng.longitude);
  map.put("location/to/lat", destinationLatLng.latitude);
  map.put("location/to/lng", destinationLatLng.longitude);
  map.put("distance", rideDistance);
  historyRef.child(requestId).updateChildren(map);

Они сказали добавить:

do if (pickupLatLng.latitude! = Null && pickupLatLng.longitude!= null && destinationLatLng.latitude! = null && destinationLatLng.longitude! = null) перед созданием hashMap или для каждой широты и долготы.

Но когда я пытаюсь это сделать, я получаю следующую ошибку:оператор! = не может быть применен к double, null

Может кто-нибудь помочь мне, пожалуйста?

Ответы [ 3 ]

0 голосов
/ 11 июня 2018

Во-первых, Java double не может быть нулевым и не может сравниваться с Java null.(Двойной тип является примитивным (не ссылочным) типом, и примитивные типы не могут быть нулевыми.)

Попробуйте это,

if( pickupLatLng.latitude != 0 && pickupLatLng.longitude != 0 && destinationLatLng.latitude != 0 && destinationLatLng.longitude != 0) 
0 голосов
/ 11 июня 2018

Я думаю, что широта или долгота в порядке, и ваш pickupLatLng или destinationLatLng равен нулю и дает вам NPE, поэтому я думаю, что вы должны использовать этот код вместо

if (pickupLatLng != null && destinationLatLng != null) {}
0 голосов
/ 11 июня 2018

double является примитивным типом, он не может быть нулевым, вместо этого вы можете использовать Double и затем сравнить его с нулевым

...