(残念ながら)Object
インスタンスを唯一のパラメーターとして受け入れるメソッドがあります。Object
がいずれかのタイプThrowable
(つまり、すべて Exceptions
のチェックまたはチェック解除、およびすべて Error
の s)である場合、それを異なる方法で処理するロジックを追加する必要があります。
public void handle(Object toHandle) {
if(toHandle.getClass().isAssignableFrom(Throwable.class))
handleThrowable(toHandle);
}
このメソッドを次のように呼び出すと:
RuntimeException rte = new RuntimeExceptio("Panic!");
handle(rte);
isAssignableFrom
チェックは false を返し、呼び出さhandleThrowable
れることはありません。なんで?
代わりに、次を使用する必要があります。
public void handle(Object toHandle) {
if(toHanlde instanceof Throwable)
handleThrowable(toHandle);
}
私が期待したように、これは機能します。しかし、なぜ機能しないのかについてはまだ困惑してisAssignableFrom
います...事前に感謝します!