java.lang.Class.getDeclaredConstructor()方法實例
java.lang.Class.getDeclaredConstructor() 方法返回一個Constructor對象,它反映此Class對象所表示的類或接口指定的構造函數。parameterTypesparameter是確定構造函數的形參類型,在Class對象聲明順序的數組。
聲明
以下是java.lang.Class.getDeclaredConstructor()方法的聲明
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes) throws NoSuchMethodException, SecurityException
參數
-
parameterTypes -- 這是參數數組。
返回值
此方法返回具有指定參數列表構造函數的構造函數對象。
異常
-
NoSuchMethodException -- 如果冇有找到匹配的方法。
-
SecurityException --如果安全管理存在。
例子
下麵的例子顯示java.lang.Class.getDeclaredConstructor()方法的使用。
package com.yiibai; import java.lang.reflect.*; public class ClassDemo { public static void main(String[] args) { try { ClassDemo cls = new ClassDemo(); Class c = cls.getClass(); // constructor with arguments as Double and Long Class[] cArg = new Class[2]; cArg[0] = Double.class; cArg[1] = Long.class; Constructor ct = c.getDeclaredConstructor(cArg); System.out.println("Constructor = " + ct.toString()); } catch(NoSuchMethodException e) { System.out.println(e.toString()); } catch(SecurityException e) { System.out.println(e.toString()); } } private ClassDemo() { System.out.println("no argument constructor"); } public ClassDemo(Double d, Long l) { this.d = d; this.l = l; } Double d = new Double(3.9d); Long l = new Long(7687); }
讓我們來編譯和運行上麵的程序,這將產生以下結果:
no argument constructor Constructor = public ClassDemo(java.lang.Double,java.lang.Long)