奥托·京舍晚年:求java.lang.class中asSubclass的使用方法

来源:百度文库 编辑:高校问答 时间:2024/04/28 04:09:43
我比较笨,JavaDoc中这部分看不懂,需要有例子

将当前Class对象转换成指定的Class对象,如果有当前的Class并非指定的Class的子类则抛出异常,常用于需要将一个Class对象窄化,以适应与某个API中的方法接受的参数
例如:
MyShape ms = new MyShape();
MyShape mc = new MyCircle();
Class mc_class = mc.getClass();
Class ms_class = ms.getClass();
Class mc_class_converted = mc_class.asSubclass(ms_class);
原本mc的静态类型是MyShape,asSubclass后窄化了MyShape 使之成为MyCircle类型,当然,前提是MyCircle extends MyShape
: )