构造函数只有一个的话,用cls.getConstructors()[0];作者: 徐梦侠 时间: 2012-10-13 22:29
实例化内部类反射需要所以传入外部类class对象。
在api中写着如果“此 Class 对象表示非静态上下文中声明的内部类,则形参类型作为第一个参数包括显示封闭的实例。 ”,官方文档解释“include the explicit enclosing instance as the first parameter.”,
class Test1 {
public static void main(String[] args) throws Exception
{
Class cls = Test1.Person.class;
System.out.println(cls.getName());//这句话的打印说明已经拿到了内部类的字节码对象。
Constructor con = cls.getConstructor(Test1.class); //对于非静态内部类,此处需要传入外部类class对象
System.out.println(con.getName());
System.out.println(con.getModifiers());
}
//内部类
public class Person{
public Person(){}
private String name;