Autoboxing-Unboxing

Autoboxing trong java đã được giới thiệu trong Java 1.5. Trong Java, Autoboxing và Unboxing là một cách thuận tiện để tự động chuyển đổi kiểu dữ liệu nguyên thủy sang các lớp trình bao bọc java tương ứng của nó và ngược lại.

Autoboxing trong Java

Việc chuyển đổi một kiểu dữ liệu nguyên thủy thành một đối tượng của lớp trình bao bọc tương ứng được gọi là autoboxing. Ví dụ, chuyển đổi int thành Integer hoặc chuyển đổi long thành Long đối tượng.

LUYỆN THI CHỨNG CHỈ OCA

Trình biên dịch Java áp dụng autoboxing khi giá trị nguyên thủy là:

  • Được truyền dưới dạng tham số cho một phương thức mong đợi một đối tượng của lớp trình bao bọc tương ứng. Ví dụ, một phương thức với đối số Integer có thể được gọi bằng cách truyền int, trình biên dịch java sẽ thực hiện chuyển đổi int thành Integer.
  • Được gán cho một biến của lớp trình bao bọc tương ứng. Ví dụ: gán một đối tượng Long cho biến long.

Unboxing trong Java

Việc chuyển đổi một đối tượng của kiểu wrapper sang kiểu dữ liệu nguyên thủy tương ứng của nó được gọi là unboxing.

  • Được truyền dưới dạng tham số cho một phương thức mong đợi một giá trị của kiểu nguyên thủy tương ứng.
  • Được gán cho một biến của kiểu nguyên thủy tương ứng.

Ví dụ về Java Autoboxing

Đây là một chương trình java nhỏ hiển thị các ví dụ về autoboxing và unboxing trong java.

import java.util.ArrayList; import java.util.List; public class AutoboxingUnboxing { public static void main(String[] args) { int i = 5; long j = 105L; // passed the int, will get converted to Integer object at Runtime using // autoboxing in java doSomething(i); List<Long> list = new ArrayList<>(); // java autoboxing to add primitive type in collection classes list.add(j); } private static void doSomething(Integer in) { // unboxing in java, at runtime Integer.intValue() is called implicitly to // return int int j = in; // java unboxing, Integer is passed where int is expected doPrimitive(in); } private static void doPrimitive(int i) { } }
Code language: PHP (php)

Lưu ý: Không phải là một ý kiến ​​hay nếu bạn luôn luôn sử dụng autoboxing, đôi khi nó có thể gây ra lỗi trình biên dịch khiến phương thức không rõ ràng khi một phương thức bị quá tải. Vui lòng tham khảo ảnh chụp màn hình dưới đây để biết ví dụ nhanh.

autoboxing in java

Đó là tất cả về autoboxing và unboxing trong java. Tính năng này rất hữu ích trong việc giảm kích thước mã vì chúng ta không phải chuyển đổi kiểu nguyên thủy sang đối tượng một cách rõ ràng.

Happy learning!!!

HỌC JAVA CORE


Hãy tham gia nhóm Học lập trình để thảo luận thêm về các vấn đề cùng quan tâm.

Bài viết liên quan

Leave a Reply

Your email address will not be published.

TÀI LIỆU DEV WORLD
Cẩm nang phát triển bền vững với nghề lập trình!