让我们看下JDK中的解释:
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes)
返回一个 Constructor 对象,该对象反映此 Class 对象所表示的类或接口的指定构造方法。parameterTypes 参数是 Class 对象的一个数组,它按声明顺序标识构造方法的形参类型。 如果此 Class 对象表示非静态上下文中声明的内部类,则形参类型作为第一个参数包括显示封闭的实例。- package com.sergio.study;
- import java.lang.reflect.Constructor;
- /**
- * @ClassName: GetMethod
- * @Description: TODO(这里用一句话描述这个类的作用)
- * @author Sergio Han
- * @date 2013-8-11 下午10:56:54
- *
- */
- public class GetMethod {
-
- public static void main(String[] args) throws NoSuchMethodException, SecurityException {
-
- //创建getclass类的对象
- GetClass gm = new GetClass();
- //获取gm对象的class属性
- Class c = gm.getClass();
-
- //创建一个Class类型的数组
- Class[] arg = new Class[1];
- //设置数组的第一个元素值为String类的值
- arg[0] = String.class;
- //获取只有一个的参数的构造方法
- Constructor strCom = c.getDeclaredConstructor(arg);
-
- System.out.println("构造方法" + strCom.toString());
-
- //如上所示,获取有两个参数的构造方法
- Class[] strs = new Class[2];
- strs[0] = String.class;
- strs[1] = Integer.class;
-
- Constructor strcon = c.getDeclaredConstructor(strs);
-
- System.out.println("带参数的构造方法" + strcon.toString());
-
- }
- }
- //定义一个GetClass类,创建带参数和不带参数的构造放,创建两个成员变量
- class GetClass{
- private String str = "hello";
- private Integer i = new Integer(1);
-
- public GetClass() {
-
- }
-
- public GetClass(String str)
- {
- this.str = str;
- }
-
- public GetClass(String str, Integer i)
- {
- this.str = str;
- this.i = i;
- }
- }
复制代码 |