Java - Что лучше всего использовать в Firestore Int или Integer? - PullRequest
0 голосов
/ 06 ноября 2018

Привет и, пожалуйста, помогите мне снова. У меня есть это, как в документах:

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

И у меня есть класс POJO.

One:

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

    public City() {}
}

Два:

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

    public City() {}
}

Что лучше использовать int или Integer в моем классе POJO?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Итак, int - это примитив, а Integer - это примитив в штучной упаковке (также в штучной упаковке).

В общем:

Предпочитают использовать примитивы над коробочными типами.

Использовать в штучной упаковке, когда:

  1. Использование параметризованных типов (список Collection). Параметризованные типы не допускают примитивы.
  2. Использование значения в качестве ключа или значения в коллекциях.
  3. Использование рефлексивного вызова метода (другой не делать). например Class.forName ( "java.lang.Integer");

Источник: Эффективная Ява Джошуа Блоха.

В вашем случае:

Если в базе данных отсутствует популяция, следует ли ее инициализировать до 0 (для примитивов) или null (для штучных типов)? На мой взгляд, 0 означает что-то. Это значит, что там 0 граждан, там никто не живет. Кроме того, вам нужно будет выполнить проверку population > 0, чтобы увидеть, присутствует ли значение. Несмотря на общую рекомендацию, в этом случае я бы пошел в штучной упаковке Integer типа.

0 голосов
/ 06 ноября 2018

Классы Wrapper - это объекты, инкапсулирующие примитивные типы Java. Таким образом, даже если вы используете примитив int или версию объекта, которая в данном случае является классом Integer, будет сопоставляться с точно таким же типом в базе данных Cloud Firestore. Смотрите здесь Firestore поддерживает типы данных .

Что лучше использовать int или Integer в POJO?

Нет лучшего варианта, вам решать, какой из этих вариантов вам удобнее. Я использую для своих классов моделей примитивные типы, потому что, если вы используете версии объекта, в некоторых случаях значения могут быть null в какой-то момент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...