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)