簡體   English   中英

snapshot.getvalue(double.class) 的拆箱可能會產生空指針異常

[英]unboxing of snapshot.getvalue(double.class) may produce nullpointer exception

Snapshot.getValue 正在產生 null 指針異常,我應該如何解決這個錯誤?

DatabaseReference offsetRef = FirebaseDatabase.getInstance().getReference(".info/serverTimeOffset");
        offsetRef.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot snapshot) {
                double offset = snapshot.getValue(Double.class);

snapshot.getValue(Double.class)返回Double object,而不是double原語。 在拆箱之前,您應該檢查此 object 的 null。 當快照中不存在數據時,它可以是 null。

Double offset = snapshot.getValue(Double.class);
if (offset != null) {
    double o = offset;
}
else {
    // figure out what you want to do when the data is not there
}

有幾個選項。 你可以寫在try...catch

double offset;

try {
    offset = snapshot.getValue(Double.class);
}catch(Exception e){
    offset = 0; //Default value
}

另一種選擇是使用三元運算符

double offset = snapshot.getValue(Double.class) != null ? snapshot.getValue(Double.class) : 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM