首先写一个测试类Cat
public class Cat
{
private String name;
private int age;
public Cat()
{
this.name = "NoneName";
this.age = 0;
}
private Cat(String name,int age)
{
this.name = name;
this.age = age;
}
public void show()
{
System.out.println("My name is " + name +"," + age +" years old!");
}
}
然后再在main函数里反射私有类型的构造方法
/*
此类是用来练习反射技术的
*/
import java.lang.reflect.*;
public class ReflectConstructor
{
public static void main(String str[]) throws NoSuchMethodException,SecurityException,
InstantiationException,
IllegalAccessException,
IllegalArgumentException,
InvocationTargetException
{
//第一步:获得类对象
Class clazz = Cat.class;
//第二步:获得类构造器
Constructor c = clazz.getDeclaredConstructor(String.class,int.class);
c.setAccessible(true);
Cat t = (Cat)c.newInstance("黄黄",2);
t.show();
}
运行结果是:
通过反射技术,私有的构造方法也可以调用