Java – Autoboxing và Unboxing

Autoboxing được giới thiệu từ Java 1.5. Autoboxing và Unboxing là một cách thuận tiện cho việc chuyển đổi các kiểu dữ liệu cơ bản sang các class Java wrapper tương ứng và ngược lại

Autoboxing

Autoboxing trong Java dùng để chuyển đổi các kiểu dữ liệu cơ bản thành object của class wrapper tương ứng. Ví dụ chúng ta có thể chuyển đổi int thành Integer hoặc chuyển đổi long thành Long object.

Trình biên dịch Java áp dụng Autoboxing khi giá trị là:

  • Được truyền như một tham số cho một phương thức mà yêu cầu một object của class wrapper tương ứng. Ví dụ một phương thức yêu cầu tham số kiểu Integer có thể được gọi bằng cách truyền int, trình biên dịch Java sẽ tự động chuyển đổi int thành Integer
  • Được gán cho một biến của class wrapper tương ứng. Ví dụ gán một Long object cho biến kiểu long.

Unboxing

Chuyển đổi một object của kiểu wrapper thành kiểu dữ liệu cơ bản tương ứng được gọi là unboxing. Ví dụ như chuyển đổi Integer thành int

Trình biên dịch Java áp dụng unboxing khi object của class wrapper là:

  • Được truyền như một tham số cho một phương thức mà yêu cầu một giá trị của kiểu dữ liệu cơ bản tương ứng.
  • Được gán cho một biến của kiểu dữ liệu cơ bản tương ứng

Ví dụ

Sau đây là ví dụ về AutoBoxing và Unboxing

import java.io.*;
class GFG
{
    public static void main (String[] args)
     {
        Integer i = new Integer(10);
        int i1 = i;
        System.out.println("Value of i: " + i);
        System.out.println("Value of i1: " + i1);
        Character gfg = 'a';
        char ch = gfg;
        System.out.println("Value of ch: " + ch);
        System.out.println("Value of gfg: " + gfg);
     }
}

Kết quả

Value of i: 10
The Value of i1: 10
Value of ch: a
Value of gfg:a

Ưu điểm

  • Giúp cho việc viết chú thích rõ ràng hơn
  • Giúp cho chúng ta có thể sử dụng hoán đổi kiểu dữ liệu cơ bản và class wrapper mà không cần typecasting

You May Also Like

About the Author: Nguyen Dinh Thuc

Leave a Reply

Your email address will not be published.