package com.wkcto.chapter08.demo01;
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
/**
* 反射构造方法
* Constructor
* getConstructor(Class<?>... parameterTypes) 指定参数列表的公共构造方法
* class1.getDeclaredConstructors() 返回所有构造方法
*
* @author 蛙课网
*
*/
public class Test05 {
public static void main(String[] args) {
//1)创建Class对象
Class<?> class1 = Integer.class;
// Class<?> class1 = String.class;
//2)反射构造方法
// class1.getConstructor(parameterTypes)
Constructor<?>[] declaredConstructors = class1.getDeclaredConstructors();
for (Constructor<?> constructor : declaredConstructors) {
//构造方法修饰符
System.out.print( Modifier.toString(constructor.getModifiers()) + " ");
//构造方法名
// System.out.print( constructor.getName() ); //构造方法名是完整类名
System.out.print( class1.getSimpleName() );
//构造方法参数类型列表
System.out.print("(");
Class<?>[] parameterTypes = constructor.getParameterTypes();
for(int i = 0 ; i<parameterTypes.length ; i++){
System.out.print( parameterTypes[i].getSimpleName());
//使用逗号分隔
if (i < parameterTypes.length - 1) {
System.out.print(",");
}
}
System.out.println(");");
}
}
}