Клас Java Wrapper (с примери)

В този урок ще научим за класа Java Wrapper с помощта на примери.

Класовете на обвиващи в Java се използват за преобразуване на примитивни типове ( int, char, float, и т.н.) в съответните обекти.

Всеки от 8-те примитивни типа има съответни класове обвивки.

Примитивен тип Клас обвивка
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.

Забележка : Можем също да преобразуваме примитивни типове в обвиващи обекти, като използваме 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.

Предимства на класовете обвивки

  • В Java понякога може да се наложи да използваме обекти вместо примитивни типове данни. Например, докато работите с колекции.
     // error ArrayList list = new ArrayList(); // runs perfectly ArrayList list = new ArrayList();
    В такива случаи класовете обвивки ни помагат да използваме примитивни типове данни като обекти.
  • Можем да съхраняваме нулевата стойност в обекти на обвивка. Например,
      // generates an error int a = null; // runs perfectly Integer a = null; 

Забележка : Примитивните типове са по-ефективни от съответните обекти. Следователно, когато ефективността е изискване, винаги се препоръчват примитивни типове.

Интересни статии...