如何理解Java的类反射机制?案例详解教i

2020-05-16 16:07:47来源:博客园 阅读 ()

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

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

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



原文链接:https://www.cnblogs.com/chengxuyuanaa/p/12899509.html
如有疑问请与原作者联系

标签:AVIEsysimgClassPOST

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:java8 新特性Stream流的应用

下一篇:线程池全面案例解析,java高级必学应用