- 步骤:
1.获取类的对象
2.获取所需要的构造方法
3.将方法实例化(newInstance)并使用 - 方法
1.Constructor<?>[] getConstructors()返回所有公共构造函数方法的数组
2.Constructor<?>[] getDeclaredConstructors()返回所有构造函数的数组
3.Constructor getConstructor(Class<?>… parameterTypes)返回单个公共构造函数
4.Constructor getDeclaredConstructor(Class<?>返回单个指定构造函数
总结:加declare为全部,不加为公共; - 代码
package com.itheima_03;
import com.itheima_02.Student;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
public class ReflectDemo01 {
public static void main(String[] args) throws ClassNotFoundException, NoSuchMethodException, IllegalAccessException, InvocationTargetException, InstantiationException {
Class<?> c = Class.forName("com.itheima_02.Student");
Constructor<?>[] cons = c.getDeclaredConstructors();
for(Constructor con : cons) {
System.out.println(con);
}
System.out.println("--------");
Constructor<?> con = c.getConstructor();
Object obj = con.newInstance();
System.out.println(obj);
}
}
- 实例
Class<?> c = Class.forName("com.itheima_02.Student");
Constructor<?> con = c.getDeclaredConstructor(String.class,int.class,String.class);
Object obj = con.newInstance("阿giao",30,"山西");
System.out.println(obj);