2013-07-29 48 views

Trả lời

4

Điều này là do tham số toArray tạo ra một mảng là Object s. Bạn cần phải gọi sự quá tải trong đó có mảng đầu ra như các tham số, và vượt qua một loạt các String s, như thế này:

String[] names = (String[]) list.toArray(new String[list.size()]); 

Trong Java 5 hoặc mới hơn, bạn có thể thả các diễn viên.

String[] names = list.toArray(new String[list.size()]); 
+2

Không phải là các diễn viên không cần thiết ở đây? Không có một trình biên dịch trên tay nhưng tôi không thấy tại sao không. Ngoài ra một liên kết đến một số lời giải thích về co/contra phương sai sẽ làm cho câu trả lời hoàn thành tôi nghĩ. – Voo

+0

@Voo Chỉ trong Java 5 trở lên; trước Java 5 nó là cần thiết. – dasblinkenlight

+0

@dasblinkenlight Tôi không biết Java 5 vẫn được sử dụng phổ biến. –

0

Bạn đang cố gắng truyền từ lớp học Object[]. Bản thân lớp là một mảng kiểu Object. Bạn sẽ phải truyền từng cá nhân, từng người một, thêm các phần tử vào một mảng mới.

Hoặc bạn có thể sử dụng phương pháp đã được thực hiện cho rằng, bằng cách làm này:

list.toArray(new String[list.size()]); 
Các vấn đề liên quan