反射

发布时间:2021-01-21编辑:dyy阅读(322)

反射机制,是指在运行时去获取一个类的变量和方法信息,然后通过获取到的信息来创建对象调用方法的一种机制,可以极大的增强程序的灵活性,程序不用在编译期就完成确定,在运行期可以扩展

获取class对象

当要通过反射去使用一个类时,首先获取该类的字节码文件,也就是获取class对象

1、直接使用类的class属性来获取该类的class对象,例如Student.class将会返回Student类的对应的class对象

Class< 类名> c1=类名.class;

2、定义一个对象,调用getclass()方法,返回该对象所属类对应的class对象

类名 c2=new 类名;    Class <? extdnds 类名>c3=c2.getClass()

3、使用class类中的静态方法forName(String className),该方法需要传入字符串参数,该字符串参数就是类的全路径,就是完整包名的路径

 Class<?>  c4=Class.forName("类的路径");

反射获取构造方法并使用

用增强for来遍历获取全部的构造方法
Constructor<?>[] constructors = aClass.getConstructors();
   for (Constructor ct:constructors){
        System.out.println(ct);
2、
Constructor<?>[] declaredConstructors = aClass.getDeclaredConstructors();
 for (Constructor cy:declaredConstructors){
    System.out.println(cy);
 3.
  Constructor<?> co=aClass.getConstructor(String.class,int.class,String.class ) 
    //newInstance()方法根据指定的构造方法创建对象,并给参数赋值
    Object o = co.newInstance("张三",25,"25565255222");       
    4.
    Constructor<?> co=aclass.getDeclaredConstructor(String.class)
    
    co.setAccessible(true)
    //newInstance()方法根据指定的构造方法创建对象,并个参数赋值
    Object o = co.newInstance("张三");


标签

上一篇:未命名

下一篇:面向对象继承、多态

评论