当可能在运行时成功进行向下转换时:
Object o = getSomeObject(),String s = (String) o; // this is allowed because o could reference a String
在某些情况下,这不会成功:
Object o = new Object();String s = (String) o; // this will fail at runtime, because o doesn't reference a String
当强制转换(例如最后一个)在运行时失败时,
ClassCastException将抛出a。
在其他情况下,它将起作用:
Object o = "a String";String s = (String) o; // this will work, since o references a String
请注意,某些强制类型转换将在编译时被禁止,因为它们根本不会成功:
Integer i = getSomeInteger();String s = (String) i; // the compiler will not allow this, since i can never reference a String.



