※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

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への変換。
  • インタフェース型Cloneablejava.io.Serializableから任意の配列型T[]への変換。
  • 任意の配列型SC[]から任意の配列型TC[]への変換。ここで、SCとTCは参照型であり、SCからTCへは縮幅参照変換。

これらの変換は実際の参照値が新しい型の正当な値かどうか判断するために実行時に検査されます。もし正当でないなら、ClassCastExceptionがスローされます。

5.1.7. ボックス化変換

5.1.8. ボックス化解除変換

5.1.9. 未検査変換

5.1.10. 捕捉変換

5.1.11. 文字列変換

5.1.12. 禁止変換

5.1.13. 値集合変換

5.2. 代入変換

5.3. メソッド呼び出し変換

5.4. 文字列変換

5.5. キャスト変換

5.6. 数値昇格