Java Autoboxing

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<Integer> 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

Trong unboxing , 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<Integer> 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]
Value at index 0: 5

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

int a = list.get(0);

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









Gõ tìm kiếm nhanh...