Автобоксиране и разопаковане на Java

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

Java Autoboxing - примитивен тип за обект на обвивка

В автобоксирането компилаторът Java автоматично преобразува примитивни типове в съответните им обекти от клас обвивка. Например,

 int a = 56; // autoboxing Integer aObj = a; 

Автобоксът има голямо предимство при работа с Java колекции.

Пример 1: Java Autoboxing

 import java.util.ArrayList; class Main ( public static void main(String() args) ( ArrayList list = new ArrayList(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); ) ) 

Изход

 ArrayList: (5, 6) 

В горния пример създадохме списък с масиви от тип Integer. Следователно списъкът с масиви може да съдържа само обекти от Integerтип.

Забележете линията,

 list.add(5); 

Тук предаваме примитивна стойност на типа. Поради автобоксирането обаче примитивната стойност автоматично се преобразува в Integerобект и се съхранява в списъка с масиви.

Разпаковане на Java - Wrapper обекти към примитивни типове

При разопаковане Java компилаторът автоматично преобразува обектите от клас обвивка в съответните им примитивни типове. Например,

 // autoboxing Integer aObj = 56; // unboxing int a = aObj; 

Подобно autoboxing , Unboxing може да се използва с Java колекции.

Пример 2: Разпаковане на Java

 import java.util.ArrayList; class Main ( public static void main(String() args) ( ArrayList list = new ArrayList(); //autoboxing list.add(5); list.add(6); System.out.println("ArrayList: " + list); // unboxing int a = list.get(0); System.out.println("Value at index 0: " + a); ) ) 

Изход

 ArrayList: (5, 6) Стойност при индекс 0: 5 

В горния пример обърнете внимание на реда,

 int a = list.get(0); 

Тук get()методът връща обекта с индекс 0. Въпреки това, поради деблокиране , обектът автоматично се преобразува в примитивен тип intи се присвоява на променливата a.

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