簡體   English   中英

Java-最好在firestore int或Integer中使用哪個?

[英]Java - Which is best to use in firestore int or Integer?

嗨,請再幫我一次。 我有這樣的文檔:

cities
 \
  - id_number
        \
         - "population": 860000
        \
         - "name": San Francisco

我有POJO課。

一:

public class City {
    public String name;
    public int population;  ** int **

    public City() {}
}

二:

public class City {
    public String name;
    public Integer population; ** Integer **

    public City() {}
}

在POJO類中最好使用intInteger

包裝器類是封裝原始Java類型的對象。 因此,即使您使用的是原始int或對象版本(在本例中為Integer類),也將映射到Cloud Firestore數據庫中的完全相同的類型。 請參閱此處Firestore支持的數據類型

在POJO中最好使用int或Integer哪個?

沒有最佳選擇,這完全取決於您來決定您對哪種選擇更滿意。 我為模型類使用的是原始類型,因為如果使用的是對象版本,則在某些情況下值有時可能為null

因此, int是一個原語,而Integer是一個裝箱的原語(也是裝箱的類型)。

一般來說:

首選使用基元而不使用盒裝類型。

在以下情況下使用盒裝類型:

  1. 使用參數化類型(列表集合)。 參數化類型不允許使用原語。
  2. 在集合中使用值作為鍵或值。
  3. 使用反射方法調用(另一個不要這樣做)。 例如class.forName(“ java.lang.Integer”);

資料來源:Joshua Bloch撰寫的有效Java。

在您的情況下:

如果在數據庫中缺少總體,是否應將其初始化為0 (對於基元)或為null (對於盒裝類型)? 我認為,0表示某些含義。 這意味着有0個公民,沒有人住在那兒。 另外,您還必須檢查population > 0以查看該值是否存在。 盡管有一般建議,但在這種情況下,我還是選擇盒裝Integer類型。

暫無
暫無

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

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