Подтвердить что ты не робот

Рекомендации: что использовать, классы-оболочки или примитивные типы данных?

В Java мы имеем примитивные типы данных и кучу классов-оболочек для них. Мой вопрос в том, когда использовать что? Я знаю, что когда нам нужно создавать коллекции, нам нужно будет использовать классы-оболочки, но кроме этого существуют другие конкретные случаи, когда нужно использовать классы-оболочки?

Кроме того, нужно ли всегда использовать примитивные типы данных, если это абсолютно необходимо?

Например, если я создаю класс, имеющий целое число и логические свойства:

Class MyClass {
    ...
    private Integer x;
    private Boolean y;
    ...
}

ИЛИ

Class MyClass {
    ...
    private int x;
    private boolean y;
    ...
}

Какие из них следует использовать чаще? И в каких сценариях должен использоваться другой?

4b9b3361

Ответ 1

Используйте примитивный тип, если у вас нет другого выбора. Тот факт, что он не является нулевым, предотвратит многие ошибки. И они также быстрее.

Помимо коллекций, типы-обертки обычно используются для представления значения, допускающего значение NULL (например, исходящего из столбца с нулевым значением базы данных).

Ответ 2

эта статья рассказывает об классах-оболочках, они сказали:

Классы-оболочки в API Java служат для двух основных целей:

1- Предоставить механизм для "обертывания" примитивных значений в объекте, чтобы примитивы могут быть включены в действия, зарезервированные для объектов, как добавление в коллекцию, или возврат из метода с возвращаемое значение объекта.

2- Чтобы предоставить набор функций полезности для примитивы. Большинство из этих функций связаны с различными конверсии: преобразование примитивов в и из объектов String и конвертирующие примитивы и строковые объекты на разные базы и с разных оснований (или радиус), например двоичный, восьмеричный и шестнадцатеричный.

Ответ 3

Классы-оболочки являются неизменяемыми и, следовательно, не имеют методов setter. Каждый раз, когда вы хотите изменить его значение, новый объект должен быть создан. Это создало бы ненужные объекты. Int-примитив просто представляет биты числа. Вы не создаете никакого нового объекта. Поэтому я бы предложил использовать примитив, когда не использовал коллекции.

Ответ 4

Классы-оболочки могут быть весьма полезны, когда ваша система создает уровень неопределенности, который должен учитываться. Например, использование Boolean в программе захвата пакетов, например wirehark, позволит вам передать нулевое значение, если вам не удалось определить, был ли пакет изменен от отправителя. В частности, в случае, когда вы можете определить другие манипуляции с пакетами.

Ответ 5

При использовании примитивных типов в С# я предпочитаю использовать псевдоним С# в объявлениях и имя .NET при доступе к статическим членам. Это просто личное предпочтение. Оба названия абсолютно эквивалентны.

int x = Int32.Parse("123");