Класс Wrapper в Java - Автобокс, распаковка и конвертация

Содержание:

Anonim

Введение в класс Wrapper в Java

Wrapper Class - важный класс библиотеки java.lang. Объекты класса Wrapper создают оболочку для примитивных типов данных. При создании объекта класса-оболочки в памяти создается пространство, в котором хранится примитивный тип данных.

Класс Wrapper предоставляет некоторые функции для преобразования объекта в примитивные данные и примитивные данные в объект, т.е. в упаковку / распаковку. Преобразование из объектов в примитивные данные и примитивные данные в объект происходит автоматически. Примитивный тип данных относится к типу int, float, char, double, byte и т. Д.

Синтаксис:

Ниже данное объявление показывает, как работает класс Wrapper в Java-программе.

например, int i = 100;

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

Integer intVal = new Integer(i);

В приведенном выше синтаксисе мы видим, как примитивный тип данных преобразуется в объект с использованием объекта класса Integer. Также можно сказать, что примитивный тип данных обернут как объект.

Использование класса Wrapper в Java

  1. Класс Wrapper может использоваться для преобразования объекта в примитивный тип данных или наоборот.
  2. Использование классов-обёрток повышает производительность программы.
  3. Класс Wrapper помогает в сериализации объекта и наоборот, он может преобразовывать примитивные данные в объекты. Иногда нам нужно передавать потоковые объекты, в этом случае класс-оболочка может преобразовать его в формат сериализации.
  4. Некоторые важные методы предоставляются классом-оберткой, который используется для поиска и сортировки в коллекциях.
  5. Вычитание и сложение, эти типы операций не могут изменить старое значение примитива integer класса Wrapper, поэтому класс Wrapper известен как неизменяемый.
  6. Класс Wrapper, используемый в многопоточном процессе, так как многопоточному процессу необходим объект для синхронизации процессов. Класс Wrapper преобразует другой тип данных в объект.

На основе JavaAPI иерархия классов Wrapper удерживает Object на вершине различных примитивных классов. Number, Character & Boolean находится на втором уровне сразу после объекта. На третьем уровне байты, короткие, инт, длинные, плавающие, двойные подпадают под тип данных Number.

Классы обертки используют следующие два механизма Autoboxing и unboxing для преобразования / переноса типа данных или преобразования объекта в примитивный тип данных.

Автобокс: автобокс относится к автоматическому преобразованию примитивного типа данных в объект с использованием классов Wrapper. Это известно как Autoboxing. В приведенных ниже примерах int преобразуется в объект Integer, а в примерах c другой тип данных примитива преобразуется в соответствующий объект.

Распаковка: Распаковка - это процесс, обратный автобоксированию. Автоматическое преобразование объекта класса-оболочки в соответствующий тип данных примитивов называется Unboxing. В приведенном ниже примере b объект Integer преобразуется в тип примитива int.

Примеры класса Wrapper в Java

Ниже приведены различные примеры Wrapper Class в Java.

Пример № 1

В приведенном ниже примере мы можем видеть, как происходит ручное преобразование через класс-оболочку из int i в объект k.

Код:

import java.util.*;
class WrapperExample (
public static void main(String args())(
int j=100;
//converting int j to integer k as an object
Integer k = new Integer(j);
System.out.println(j + "\n" + k);
)
)

Выход:

В приведенном выше примере мы можем видеть, как преобразование происходит явно.

Пример № 2

В приведенном ниже примере мы можем видеть, что этот процесс преобразования иногда происходит автоматически, то есть известен как автобокс.

Код:

import java.util.*;
class AutoboxingUnboxingExample (
public static void main(String args())(
int j = 500;
ArrayList arrValues = new ArrayList();
arrValues.add(j); // autoboxing takes place implicitly
System.out.println(arrValues.get(0));
)
)

Выход:

В приведенном выше примере значение int неявно преобразуется в объект как объект. Далее это значение можно получить из ArrayList.

Пример № 3

В этом примере мы рассмотрим реализацию Unboxing. Распаковка - это обратный процесс автобокса.

Код:

import java.util.*;
class AutoboxingUnboxingExample (
public static void main(String args())(
ArrayList arrValues = new ArrayList();
arrValues.add(250);
//unboxing here as int data type from Integer object
int k = arrValues.get(0);
//value printed is in primitive data type
System.out.println(k);
)
)

Выход:

В приведенном выше примере поле объекта ArrayList преобразуется в тип примитивного k, т.е. int k.

Пример № 4

В следующем примере приведены все детали Autoboxing & Unboxing.

Код:

import java.util.*;
class WrapperConversionExample (
public static void main(String args())(
int i = 15;
float j = 9.6f;
double k = 120.8;
byte l = 1;
//creating instance of Integer object
Integer iObj = new Integer(i);
//creating instance of Float object
Float fObj = new Float(j);
//creating instance of Double object
Double dObj = new Double(k);
//creating instance of Double object
Byte bObj = new Byte(l);
//value printed is in object
System.out.println("Value as an Integer object > " + iObj);
System.out.println("Value as a Float object > " + fObj);
System.out.println("Value as a Double object > " + dObj);
System.out.println("Value as a Byte object > " + bObj);
//primitive data type from the object
int m = iObj;
float n = fObj;
double o = dObj;
byte p = bObj;
//value printed is in primitive data type
System.out.println("Value as an int primitive type > " + m);
System.out.println("Value as a float primitive type > " + n);
System.out.println("Value as a double primitive type > "+ o);
System.out.println("Value as a byte primitive type > " + p);
)
)

Выход:

В приведенной выше программе мы видим реализацию классов Wrapper. Классы Wrapper преобразуют примитивный тип данных в объект и объект в примитивный тип данных. Класс оболочки предоставляет отдельные классы для каждого примитивного типа данных.

Вывод

Через классы Wrapper мы можем легко понять автобокс и распаковку. Как происходит преобразование из примитива в объект и наоборот, что легко понять с помощью классов Wrapper. Для каждого из примитивных типов данных в Java есть выделенный класс.

Рекомендуемая статья

Это руководство по классу Wrapper в Java. Здесь мы обсуждаем синтаксис и использование класса-оболочки в Java вместе с различными примерами и реализацией кода. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

  1. Как работает Case Statement в Java?
  2. Что такое Generics в Java?
  3. Концепция сериализации в Java
  4. Java Top 8 Интервью Вопросы
  5. Инструменты развертывания Java
  6. Примеры и как работают дженерики в C #