class对象,反射

巧了我就是萌 提交于 2019-12-02 18:17:45

获取Class对象的三种方式:

1.通过getObject()

Person p=new Person();

Class c=p.getClass();

2.通过类名.class获取字节码文件对象

Class c=Person.class

3.通过class类中的方法,将类名传给forName方法

Class c=Class.forName("Person")

反射:Constructor

对任意类,都能够知道这个类的所有属性和方法。

对任意对象,都能够调用任意一个方法和属性。

通过反射获取构造方法并使用:

Class c=Class.forName("Person")

1.获取所有公共构造方法:

Constructor[] cons=c.getDeclaredConstructors()

遍历cons:  for(Constructor ccc:cons){sysout(ccc)}

2.获取公共有参构造方法

Constructor con1=c.getConstructor(String.class);

Constructor con2=c.getConstructor(String.class,int.class,String.class);

con1.newInstance("aaa")

con2.newInstance("aaa",10)

3.暴力反射,获取私有private构造方法。不提倡

Constructor c=c.getDeclaredConstructor(String.class);

con.setAccessible(true);

//创建对象

Objcet stu=(Person)con.newInstance("aaa");

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!