đúc Object [] để một tài liệu tham khảo type mảng trong java


0 Phiếu
Đã hỏi 12/5/2016 bởi Naf_one (490 điểm)
Thực hiện một stack chung, thành ngữ sau đây được sử dụng và hoạt động mà không có bất kỳ vấn đề
public class GenericStack<Item> {
    private int N;
    private Item[] data;    
    public GenericStack(int sz) {
        super();
        data = (Item[]) new Object[sz];
    }
        ...
}
Tuy nhiên khi tôi cố gắng sau, nó gây ra một
String[] stra = (String[]) new Object[4];
Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String;
ClassCastException làm thế nào để giải thích điều này?

1 câu trả lời

0 Phiếu
Đã trả lời 22/5/2016 bởi Erasure (720 điểm)
tôi nghĩ rằng đây là câu trả lời tốt nhất cho câu hỏi này: "String [] không phải là một đối tượng [], đó là một chút counter-intuitive. Bạn đang gặp phải "chuối là một trái cây" nhưng một kịch bản "Danh sách của chuối là-không-một danh sách các trái cây"." Ref: http://stackoverflow.com/a/ 1018774 / 847818 từ cùng một câu hỏi, làm thế nào để đúc:
String[] stringArray = Arrays.copyOf(objectArray, objectArray.length, String[].class);
hoặc
String[] stringArray = Arrays.asList(objectArray).toArray(new String[objectArray.length]);

ToughDev Q&A là gì?

Trang web hỏi đáp cho các bạn đam mê lập trình, phát triển phần mềm và các vấn đề kỹ thuật khác. Với sự giúp đỡ của bạn, chúng tôi hy vọng sẽ xây dựng thành công một thư viện đầy đủ các câu hỏi và trả lời về tất cả các vấn đề có liên quan đến lập trình!







...