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