Java:父类对象为什么能转换成子类呢?
try{
......
}
catch (InvocationTargetException e)
{
Throwable target = e.getTargetException();
((DSException)target).getCode();
}
被反射调用的方法出现异常时都会被InvocationTargetException捕获,继承关系为
下面提供一段InvocationTargetException的节选
public class InvocationTargetException extends ReflectiveOperationException {
private Throwable target;
public Throwable getTargetException() {
return target;
}
......
}
DSException是我自定义的异常,后面的getCode()为DSException中新定义的方法,但是target是所有异常的父类(Throwable)的对象,也就是Throwable类的对象,为什么可以强制转换成子类(DSException)对象呢?
ysyc1
11 years ago