Java FAQ:配列型を扱うときの問題点?

Java FAQ:S014-Q03

まんま

public class C2008052300 {
    public static void main(String[] args) {
        Object[] array = new String[10];

        array[0] = new Integer(1);
    }
}

で、

Exception in thread "main" java.lang.ArrayStoreException
	at C2008052300.main(C2008052300.java:6)

javap -c を実行

Compiled from C2008052300.java
public class C2008052300 extends java.lang.Object {
    public C2008052300();
    public static void main(java.lang.String[]);
}

Method C2008052300()
   0 aload_0
   1 invokespecial #1 <Method java.lang.Object()>
   4 return

Method void main(java.lang.String[])
   0 bipush 10
   2 anewarray class #2 <Class java.lang.String>
   5 astore_1
   6 aload_1
   7 iconst_0
   8 new #3 <Class java.lang.Integer>
  11 dup
  12 iconst_1
  13 invokespecial #4 <Method java.lang.Integer(int)>
  16 aastore
  17 return