Lớp Java Wrapper

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

Các lớp wrapper trong Java được sử dụng để chuyển đổi các kiểu dữ liệu ( intcharfloat, vv) thành các đối tượng tương ứng.

Mỗi loại trong số 8 kiểu nguyên thủy có các lớp trình bao bọc tương ứng.

Primitive TypeWrapper Class
byteByte
booleanBoolean
charCharacter
doubleDouble
floatFloat
intInteger
longLong
shortShort

Chuyển đổi kiểu nguyên thủy thành đối tượng gói

Chúng ta cũng có thể sử dụng valueOf()phương thức để chuyển đổi các kiểu nguyên thủy thành các đối tượng tương ứng.

Ví dụ 1: Các kiểu nguyên thủy cho các đối tượng gói

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.");
    }
  }
}

Đầu ra

An object of Integer is created.
An object of Double is created.

Trong ví dụ trên, chúng ta đã sử dụng valueOf()phương thức để chuyển đổi các kiểu nguyên thủy thành các đối tượng.

Ở đây, chúng tôi đã sử dụng các instanceofnhà điều hành để kiểm tra xem các đối tượng được tạo ra là của Integerhoặc Doubleloại hay không.

Tuy nhiên, trình biên dịch Java có thể chuyển đổi trực tiếp các kiểu nguyên thủy thành các đối tượng tương ứng. Ví dụ,

int a = 5;
// converts into object
Integer aObj = a;

double b = 5.6;
// converts into object
Double bObj = b;

Quá trình này được gọi là tự động đấm bốc . Để tìm hiểu thêm, hãy truy cập tính năng tự động mở hộp và mở hộp Java .

Lưu ý : Chúng ta cũng có thể chuyển đổi các kiểu nguyên thủy thành các đối tượng bao bọc bằng cách sử dụng các hàm tạo Wrapperlớp. Nhưng việc sử dụng các hàm tạo bị loại bỏ sau Java 9.

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

Để chuyển đổi các đối tượng vào các loại nguyên thủy, chúng ta có thể sử dụng phương pháp giá trị tương ứng ( intValue()doubleValue(), vv) hiện diện trong mỗi lớp wrapper.

Ví dụ 2: Gói các đối tượng thành các kiểu nguyên thủy

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);
  }
}

Đầu ra

The value of a: 23
The value of b: 5.55

Trong ví dụ trên, chúng ta đã sử dụng phương thức intValue()và doubleValue()để chuyển đổi các đối tượng Integervà Doublethành các kiểu nguyên thủy tương ứng.

Tuy nhiên, trình biên dịch Java có thể tự động chuyển đổi các đối tượng thành các kiểu nguyên thủy tương ứng. Ví dụ,

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;

Quá trình này được gọi là mở hộp . Để tìm hiểu thêm, hãy truy cập tính năng tự động mở hộp và mở hộp Java .

Ưu điểm của các lớp Wrapper

  • In Java, sometimes we might need to use objects instead of primitive data types. For example, while working with collections.// error ArrayList<int> list = new ArrayList<>(); // runs perfectly ArrayList<Integer> list = new ArrayList<>();In such cases, wrapper classes help us to use primitive data types as objects.
  • We can store the null value in wrapper objects. For example, // generates an error int a = null; // runs perfectly Integer a = null;

Lưu ý : Các kiểu nguyên thủy hiệu quả hơn các đối tượng tương ứng. Do đó, khi hiệu quả là yêu cầu, nó luôn được khuyến khích sử dụng các loại nguyên thủy.









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