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(");");
}
}
}