casting Object[] to a reference type array in java
问题 In implementation of a generic stack ,the following idiom is used and works without any problem public class GenericStack<Item> { private int N; private Item[] data; public GenericStack(int sz) { super(); data = (Item[]) new Object[sz]; } ... } However when I try the following ,it causes a ClassCastException String[] stra = (String[]) new Object[4]; Exception in thread "main" java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to [Ljava.lang.String; How do you explain this? 回答1: