• 如何理解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架构项目实战教程及大厂面试题库,进我扣裙 :七吧伞吧零而衣零伞 (数字的谐音)转换下可以找到了,还可以跟老架构师交流

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


  • 相关阅读:
    http协议相关知识
    linux 常用命令总结
    PHP traits
    php 正则案例
    php 中关于正则 元字符
    【U3D】 第三人称控制器ThirdPersonCharacter添加之后角色原地打转不移动的问题(unity5.3.5f)
    .Net Core异步async/await探索
    IdentityServer4实现单点登录统一认证
    CSAPP-Tiny Web服务器【2】源码解析
    CSAPP-Tiny Web服务器【1】编译搭建
  • 原文地址:https://www.cnblogs.com/chengxuyuanaa/p/12899509.html
Copyright © 2020-2023  润新知