akios @ ウィキ
5.1.6. 縮幅参照変換
最終更新:
akios
-
view
5. 変換と昇格
5.1. 変換の種類
5.1.1. 恒等変換
5.1.2. 拡幅プリミティブ変換
5.1.3. 縮幅プリミティブ変換
5.1.4. 拡幅と縮幅プリミティブ変換
5.1.5. 拡幅参照変換
5.1.6. 縮幅参照変換
以下の6種類の変換は縮幅参照変換(narrowing reference conversion)と呼ばれます。:
- SはTの適切なスーパータイプである任意の参照型Sから任意の参照型Tへの変換。
重要で特別な事例としてObjectクラス型から任意の他の参照型への縮幅参照変換があります(4.12.4.)。
- finalではなくKを実装してもいない任意のクラス型Cから任意の非引数付きインタフェース型Kへの変換。
- 任意のインタフェース型Jからfinalではない任意の非引数付きクラス型Cへの変換。
- JはKの適切なスーパーインタフェースではない任意のインタフェース型Jから任意の非引数付きインタフェース型Kへの変換。
- インタフェース型Cloneableとjava.io.Serializableから任意の配列型T[]への変換。
- 任意の配列型SC[]から任意の配列型TC[]への変換。ここで、SCとTCは参照型であり、SCからTCへは縮幅参照変換。
これらの変換は実際の参照値が新しい型の正当な値かどうか判断するために実行時に検査されます。もし正当でないなら、ClassCastExceptionがスローされます。