Autoboxing-Unboxing

Autoboxing và Unboxing trong Java

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

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai.

Tài liệu + Khóa học lập trình FREE
Tài liệu + Khóa học lập trình FREE

DMCA.com Protection Status