物件投射
與原語一樣,可以顯式和隱式地轉換物件。
當源型別擴充套件或實現目標型別(強制轉換為超類或介面)時,會發生隱式轉換。
當源型別由目標型別擴充套件或實現(轉換為子型別)時,必須進行顯式轉換。當正在轉換的物件不是目標型別(或目標的子型別)時,這會產生執行時異常(ClassCastException
)。
Float floatVar = new Float(42.0f);
Number n = floatVar; //Implicit (Float implements Number)
Float floatVar2 = (Float) n; //Explicit
Double doubleVar = (Double) n; //Throws exception (the object is not Double)