Class类:
获取字节码文件对象:
public static Class<?> forName(String className):返回与带有给定字符串名的类或接口相关联的 Class 对象。
获取构造方法:
public Constructor<?>[] getConstructors():返回类的所有公共构造方法。
public Constructor<?>[] getDeclaredConstructors():返回类声明的所有构造方法。它们是公共、保护、默认(包)访问和私有构造方法。
public Constructor<T> getConstructor(Class<?>... parameterTypes):返回类的指定公共构造方法。
注意:parameterTypes 参数是 Class 对象的一个数组,这些 Class 对象按声明顺序标识构造方法的形参类型。
public Constructor<T> getDeclaredConstructor(Class<?>... parameterTypes):返回类或接口的指定构造方法。
创建对象的实例:
public T newInstance(Object... initargs):initargs - 将作为变量传递给构造方法调用的对象数组
实例:
import java.lang.reflect.Constructor;
public class demo2 {
public static void main(String[] args) throws Exception {
//获取字节码文件对象
Class c = Class.forName("javaReflect.Person");
//获取构造方法
Constructor<Person> con = c.getConstructor(String.class,int.class);
//通过带参构造方法创建对象
Person p = con.newInstance("小林凉子",24);
System.out.println(p); //Person [name=小林凉子, braSize=24]
}
}