[英]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類中最好使用int
或Integer
?
包裝器類是封裝原始Java類型的對象。 因此,即使您使用的是原始int
或對象版本(在本例中為Integer
類),也將映射到Cloud Firestore數據庫中的完全相同的類型。 請參閱此處Firestore支持的數據類型 。
在POJO中最好使用int或Integer哪個?
沒有最佳選擇,這完全取決於您來決定您對哪種選擇更滿意。 我為模型類使用的是原始類型,因為如果使用的是對象版本,則在某些情況下值有時可能為null
。
因此, int
是一個原語,而Integer
是一個裝箱的原語(也是裝箱的類型)。
一般來說:
首選使用基元而不使用盒裝類型。
在以下情況下使用盒裝類型:
- 使用參數化類型(列表集合)。 參數化類型不允許使用原語。
- 在集合中使用值作為鍵或值。
- 使用反射方法調用(另一個不要這樣做)。 例如class.forName(“ java.lang.Integer”);
資料來源:Joshua Bloch撰寫的有效Java。
在您的情況下:
如果在數據庫中缺少總體,是否應將其初始化為0
(對於基元)或為null
(對於盒裝類型)? 我認為,0表示某些含義。 這意味着有0個公民,沒有人住在那兒。 另外,您還必須檢查population > 0
以查看該值是否存在。 盡管有一般建議,但在這種情況下,我還是選擇盒裝Integer
類型。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.