インタフェースは,9を,そして,配列は10を参照のこと。参照型へのキャストがコンパイル時エラーでなければ,次の二つの場合が存在する。キャストがコンパイル時に正しいと決定できる。代入変換(5.2)によって変換できる場合だけとする。キャストが,実行時の正当性検査を要求する。キャストは可能となる。そのキャスト演算子によって名前を与えられた型とする。インタフェースになることがある点に注意すること。その理由は,実行時の参照値が,その要素の型がインタフェース型である配列を参照することがあるからである)。この修正されたアルゴリズムを次に示す。(配列クラスではない)普通のクラスの場合。下位クラスでなければならない。なければ,実行時例外が投げられる。実装(8.1.4)しなければならない。なければ,実行時例外が投げられる。配列型ならば,実行時例外が投げられる。インタフェースの場合。(4.3.2)でなければならない。なければ,実行時例外が投げられる。下位インタフェースでなければならない。なければ,実行時例外が投げられる。配列型ならば,実行時例外が投げられる。構成要素とする配列の場合。(4.3.2)でなければならない。なければ,実行時例外が投げられる。変数に記憶されるときには,コンパイル時検査をすり抜ける可能性がある)。構成要素とする配列のとき,次の一つが真でなければ,実行時例外が投げられる。