zoukankan      html  css  js  c++  java
  • 如何理解Java的类反射机制?案例详解教i

     

    Java的类反射机制(Java高级)

    反射:针对性地映射 某一个完整事务的行为或特征(单独操作类中任意内容)

    1、反射机制 - 获取对象

    • 什么是类对象?

      类对象,就是用于描述这种类,都有什么属性,什么方法。

    • 对象之前的区别?

      gareen 和 teemo都是 Hero对象,他们的区别在于:各自有不同的名称、血量、技能。

    • 类之间的区别?

      Hero 和 soldier 都是类,他们的区别在于有:不同的方法,不同的属性。

    • 获取类对象的3种方式

      • Class.forName
      • Hero.class
      • new Hero().getClass()
      package reflection;
      
      import charactor.Hero;
      
      public class TestReflection {
      
          public static void main(String[] args) {
                  String className = "charactor.Hero";
                  try {
                      Class pClass1=Class.forName(className);
                      Class pClass2=Hero.class;
                      Class pClass3=new Hero().getClass();
                      System.out.println(pClass1==pClass2);
                      System.out.println(pClass1==pClass3);
                  } catch (ClassNotFoundException e) {
                      // TODO Auto-generated catch block
                      e.printStackTrace();
                  }
          }
      }
      

    2、反射机制 - 访问属性

    2.1、getField 和 getDeclaredField的区别

    getDeclaredField: 获取本类所有字段(无视权限访问修饰符) 适用于获取当前类

    getField:只能获取public字段,包括从父类继承来的字段 适用于获取父类public

    3、反射固定步骤:

    3.1、获取

    • 1、获取对象 Class
    • 2、通过类对象获取内容(成员方法、成员变量)
    • 3、设置类外可用(暴力反射,private)

    3.2、执行

    • 1、通过类对象获取类的构造方法
    • 2、通过构造方法创建对象
    • 3、调用
      最后注意:光理论是不够的。在此顺便送大家十套2020最新JAVA架构项目实战教程及大厂面试题库,进我扣裙 :七吧伞吧零而衣零伞 (数字的谐音)转换下可以找到了,还可以跟老架构师交流

      本文的文字及图片来源于网络加上自己的想法,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理


  • 相关阅读:
    Linux安装svn
    spring低版本报错:java.lang.IllegalStateException: Context namespace element ‘annotation-config’ and its parser class [*] are only available on
    linux下nproc的作用
    Oracle存储过程--案例
    Oracle存储过程
    LoadRunner 11 安装
    BZOJ 1061 志愿者招募(最小费用最大流)
    ZOJ 1015 Fishing Net(判断弦图)
    BZOJ 1049 数字序列(LIS)
    topcoder srm 620 div1
  • 原文地址:https://www.cnblogs.com/chengxuyuanaa/p/12899509.html
Copyright © 2011-2022 走看看