Tự động đóng hộp và mở hộp trong Java

Trong hướng dẫn này, chúng ta sẽ tìm hiểu về tính năng tự động đóng hộp và mở hộp trong Java với sự trợ giúp của các ví dụ.

Java Autoboxing - Loại nguyên thủy cho đối tượng Wrapper

Trong autoboxing , trình biên dịch Java tự động chuyển đổi các kiểu nguyên thủy thành các đối tượng lớp trình bao bọc tương ứng của chúng. Ví dụ,

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

Autoboxing có một lợi thế lớn khi làm việc với các bộ sưu tập Java.

Ví dụ 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); ) ) 

Đầu ra

 ArrayList: (5, 6) 

Trong ví dụ trên, chúng ta đã tạo một danh sách mảng kiểu Integer. Do đó danh sách mảng chỉ có thể chứa các đối tượng cùng Integerkiểu.

Lưu ý dòng,

 list.add(5); 

Ở đây, chúng ta đang truyền giá trị kiểu nguyên thủy. Tuy nhiên, do autoboxing , giá trị nguyên thủy được tự động chuyển đổi thành một Integerđối tượng và được lưu trữ trong danh sách mảng.

Java Unboxing - Gói các đối tượng thành các loại nguyên thủy

Khi mở hộp , trình biên dịch Java tự động chuyển đổi các đối tượng lớp wrapper thành các kiểu nguyên thủy tương ứng của chúng. Ví dụ,

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

Giống như autoboxing , unboxing cũng có thể được sử dụng với các bộ sưu tập Java.

Ví dụ 2: Mở hộp 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); ) ) 

Đầu ra

 ArrayList: (5, 6) Giá trị tại chỉ mục 0: 5 

Trong ví dụ trên, lưu ý dòng,

 int a = list.get(0); 

Ở đây, get()phương thức trả về đối tượng ở chỉ số 0. Tuy nhiên, do không được mở hộp nên đối tượng sẽ tự động được chuyển thành kiểu nguyên thủy intvà được gán cho biến a.

thú vị bài viết...