java.lang.Class.asSubclass() 方法施放此Class物件,以表示指定的Class物件所表示的類的子類。當一個用戶端需要“窄”一類的物件的型別將它傳遞給了限制類的物件,它願意接受一個API,它是有用的。
以下是java.lang.Class.asSubclass()方法的宣告
public <U> Class<? extends U> asSubclass(Class<U> clazz)
NA
此方法返回Class物件,轉換為代表指定的類物件的子類。
ClassCastException -- 如果此Class物件不表示指定類的子類(在這個“子類”包括類本身)。
下面的例子顯示java.lang.Class.asSubclass()方法的使用。
package com.yiibai; 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 ClassDemo class SubClass1 class SubClass1