2009-11-05 30 views

Trả lời

11

Nếu bạn không muốn tạo ra một ví dụ, bạn có thể tạo tên chuẩn của mảng bằng tay và nhận được lớp bằng tên:

// Replace `String` by your object type. 
Class stringArrayClass = Class.forName(
    "[L" + String.class.getCanonicalName() + ";" 
); 

Nhưng Jakob Jenkov argues in his blog rằng giải pháp của bạn là một trong những tốt hơn, bởi vì nó không cần thiết với chuỗi.

Class stringArrayClass = Array.newInstance(String.class, 0).getClass(); 
+2

Ông bắt đầu với việc ở trên và kết thúc với những gì tôi có. Vì vậy, tôi đoán 'newInstance' là cách sạch nhất để làm điều này. –

+0

Nó thực sự hoạt động theo cả hai cách, nhưng bạn nói bạn không muốn tạo một thể hiện mới. –

+0

Đúng. Tôi đã thực sự tìm kiếm một giải pháp sạch hơn. Nó không phải là tôi không muốn các trường hợp mới nhưng tôi không muốn có một :-) –

-1
Class stringArrayOfClass = String[].class; 
+0

Tôi không biết loại trước; nó đang ở trong một biến Class. Vì vậy, phương pháp của bạn sẽ không hoạt động. –

+2

Cảm ơn bạn đã chỉ ra điều đó –

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