Java FAQ:cast
Java FAQ:S014-Q02
public class C2008052200 { public static void main(String[] args) { double dx = 1.2; int ix; ix = (int)dx; System.out.println(ix); } }
をコンパイルした後、javap -c を実行
Compiled from C2008052200.java public class C2008052200 extends java.lang.Object { public C2008052200(); public static void main(java.lang.String[]); } Method C2008052200() 0 aload_0 1 invokespecial #1 <Method java.lang.Object()> 4 return Method void main(java.lang.String[]) 0 ldc2_w #2 <Double 1.2> 3 dstore_1 4 dload_1 5 d2i 6 istore_3 7 getstatic #4 <Field java.io.PrintStream out> 10 iload_3 11 invokevirtual #5 <Method void println(int)> 14 return
public class C2008052201 { public static void main(String[] args) { Object o = "foo"; String s = (String)o; } }
をコンパイルした後、javap -c を実行
Compiled from C2008052201.java public class C2008052201 extends java.lang.Object { public C2008052201(); public static void main(java.lang.String[]); } Method C2008052201() 0 aload_0 1 invokespecial #1 <Method java.lang.Object()> 4 return Method void main(java.lang.String[]) 0 ldc #2 <String "foo"> 2 astore_1 3 aload_1 4 checkcast #3 <Class java.lang.String> 7 astore_2 8 return