В этом руководстве мы узнаем о классе Java Wrapper с помощью примеров.
Классы - обертки в Java используются для преобразования примитивных типов ( int
, char
, float
, и т.д.) в соответствующие объекты.
Каждому из 8 примитивных типов соответствуют классы-оболочки.
Примитивный тип | Класс Wrapper |
---|---|
byte | Byte |
boolean | Boolean |
char | Character |
double | Double |
float | Float |
int | Integer |
long | Long |
short | Short |
Преобразование примитивного типа в объекты оболочки
Мы также можем использовать этот valueOf()
метод для преобразования примитивных типов в соответствующие объекты.
Пример 1: примитивные типы для объектов оболочки
class Main ( public static void main(String() args) ( // create primitive types int a = 5; double b = 5.65; //converts into wrapper objects Integer aObj = Integer.valueOf(a); Double bObj = Double.valueOf(b); if(aObj instanceof Integer) ( System.out.println("An object of Integer is created."); ) if(bObj instanceof Double) ( System.out.println("An object of Double is created."); ) ) )
Вывод
Создается объект Integer. Создается объект Double.
В приведенном выше примере мы использовали этот valueOf()
метод для преобразования примитивных типов в объекты.
Здесь мы использовали instanceof
оператор , чтобы проверить , является ли сгенерированные объекты имеют Integer
или Double
типа или нет.
Однако компилятор Java может напрямую преобразовывать примитивные типы в соответствующие объекты. Например,
int a = 5; // converts into object Integer aObj = a; double b = 5.6; // converts into object Double bObj = b;
Этот процесс известен как автоматическая упаковка . Чтобы узнать больше, посетите Java autoboxing and unboxing.
Примечание . Мы также можем преобразовать примитивные типы в объекты-оболочки с помощью Wrapper
конструкторов классов. Но после Java 9 использование конструкторов исключено.
Объекты-оболочки в примитивные типы
Чтобы преобразовать объекты в примитивные типы, мы можем использовать соответствующие методы значений ( intValue()
, doubleValue()
и т.д.), присутствующие в каждом классе-оболочке.
Пример 2: объекты-оболочки в примитивные типы
class Main ( public static void main(String() args) ( // creates objects of wrapper class Integer aObj = Integer.valueOf(23); Double bObj = Double.valueOf(5.55); // converts into primitive types int a = aObj.intValue(); double b = bObj.doubleValue(); System.out.println("The value of a: " + a); System.out.println("The value of b: " + b); ) )
Вывод
Значение a: 23 Значение b: 5,55
В приведенном выше примере, мы использовали intValue()
и doubleValue()
способ для преобразования Integer
и Double
объекты в соответствующие примитивные типы.
Однако компилятор Java может автоматически преобразовывать объекты в соответствующие примитивные типы. Например,
Integer aObj = Integer.valueOf(2); // converts into int type int a = aObj; Double bObj = Double.valueOf(5.55); // converts into double type double b = bObj;
Этот процесс известен как распаковка . Чтобы узнать больше, посетите Java autoboxing and unboxing.
Преимущества классов оболочки
- В Java иногда может потребоваться использовать объекты вместо примитивных типов данных. Например, при работе с коллекциями.
// error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
- Мы можем хранить нулевое значение в объектах-оболочках. Например,
// generates an error int a = null; // runs perfectly Integer a = null;
Примечание . Примитивные типы более эффективны, чем соответствующие объекты. Следовательно, когда требуется эффективность, всегда рекомендуются примитивные типы.