Class extends U> asSubclass(Class clazz)
描述 (Description)
java.lang.Class.asSubclass()方法强制转换此Class对象以表示由指定的类对象表示的类的子类。当客户端需要“缩小”Class对象的类型以将其传递给它时,它很有用。一个限制它愿意接受的Class对象的API。
声明 (Declaration)
以下是java.lang.Class.asSubclass()方法的声明public Class extends U> asSubclass(Class clazz)
参数 (Parameters)
NA
返回值 (Return Value)
此方法返回此Class对象,强制转换为表示指定类对象的子类。
异常 (Exception)
ClassCastException - 如果此Class对象不表示指定类的子类(在此“子类”中包含类本身)。
例子 (Example)
以下示例显示了java.lang.Class.asSubclass()方法的用法。package com.iowiki;
import java.lang.*;
public class ClassDemo {
public static void main(String[] args) {
try {
ClassDemo cls = new ClassDemo();
ClassDemo subcls = new SubClass1();
// class ClassDemo
Class c = cls.getClass();
System.out.println(c);
// sub class SubClass1
Class c1 = subcls.getClass();
System.out.println(c1);
// represent a subclass of the specified class object
Class retval = c1.asSubclass(c);
System.out.println(retval);
} catch(ClassCastException e) {
System.out.println(e.toString());
}
}
}
class SubClass1 extends ClassDemo {
// sub class
}
让我们编译并运行上面的程序,这将产生以下结果 -class com.iowiki.ClassDemo
class com.iowiki.SubClass1
class com.iowiki.SubClass1