2009-11-20 33 views
6

này mang lại cho tôi một lỗi:Java: Tại sao autoboxing không xảy ra ở đây?

int[] l = new int[] {0, 2, 192, -1, 3, 9, 2, 2}; 
int[] l2 = new int[] {9001, 7, 21, 4, -3, 11, 10, 10}; 
int[] l3 = new int[] {5, 5, 5, 64, 21, 12, 13, 200}; 

Set<List<Integer>> lists = new HashSet<List<Integer>>(); 
lists.add(Arrays.asList(l)); 

Eclipse: The method add(List<Integer>) in the type Set<List<Integer>> is not applicable for the arguments (List<int[]>)

Tôi nghĩ int trù phải được autoboxed để Integer?

+0

Oh người đàn ông bạn đặt tên một đối tượng được đặt làm danh sách !! – Cshah

Trả lời

15

Mặc dù int được tự động đóng hộp thành Số nguyên, int [] không được Tự động đóng hộp thành Số nguyên [].

Các mảng không được đóng hộp, chỉ là các loại.

Xem: How to convert int[] into List<Integer> in Java? để giải quyết các lý do và lý do cơ bản.

1

Nó sẽ AUTOBOX từ

Integer i = 1 
int ii = i; 

Tuy nhiên, bạn đang cố gắng để chuyển đổi một mảng, và khi nó cố gắng để đưa một loạt các nguyên thủy như là một mảng của các đối tượng họ là khác nhau.

Các vấn đề liên quan