だれの子孫か?
オブジェクト hoge が、クラス Tako の子孫の クラスの オブジェクトである場合true を返す。
bool isChild = (new Tako()).getClass().isInstance((Object)hoge);
hoge.getSuperclass()を使うと、その第一親等の祖先との比較しかできないが、
これだと、Ko extends Titi extends Zizi extends Hizizi
とか言う場合にKo のオブジェクト hoge が Hizizi にキャストできるかどうかがわかる。
ClassCastException を呼ばない、呼ぶでわけた方が早いか?
Image image;
try{
//Applet 族だと、getCodeBase()でimage を取ってこれる。
Applet applet = (Applet) hoge;
image = applet.getImage(applet.getCodeBase(), filename);
}catch(ClassCastException e){
//そうでなければToolkitから。
Toolkit toolkit = Toolkit.getDefaultToolkit();
image = toolkit.getImage(filename);
}