キャスト
Javaでコードを書いている時、しばしば型変換=キャストをしたい時があり、その時に使うのがキャスト演算子です。
(新しい型名) 変数 // "(" と ")" がキャスト演算子
のようにして変換できます。
変換のときに注意しなければならないのが、ダウンキャストといって、サブクラスにキャストする時です。
2つのクラス「A」と「B extends A」があった時、クラスAからクラスBにキャストするのがダウンキャストです。
例えばObject型からSrting型にキャストするのがダウンキャストです。
例外への対策
問題のあるキャストをすると、
java.lang.ClassCastException
という「例外」が起きます。
この例外を避けるために、
instanceof演算子を使って型のチェックをする
という方法があります。
if (a instanceof Integer) { Integer x = (Integer)a; }
nullは特別で、全ての参照型と代入互換性があるので、nullをキャストする時に例外は発生しません。