与基元一样,对象可以显式和隐式转换。
当源类型扩展或实现目标类型(广播到超类或接口)时,会发生隐式转换。
当源类型扩展或由目标类型实现(强制转换为子类型)时,必须进行显式转换。ClassCastException当要转换的对象不是目标类型(或目标的子类型)时,这可能会产生运行时异常()。
Float floatVar = new Float(42.0f); Number n = floatVar; //隐式(浮动工具编号) Float floatVar2 = (Float) n; //Explicit Double doubleVar = (Double) n; //引发异常(对象不是Double)