zoukankan      html  css  js  c++  java
  • 反射小结

    反射

    1在java中的反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,
    对于任意一个对象,都能够调用它的任意一个方法,这种动态获取信息以及动态调用对象方法的功能称为
    java语言的反射机制。

    java反射可以实现的功能
    在运行时判断任意一个对象所属的类
    在运行时构造任意一个类的对象
    在运行时判断任意一个类所具有的方法和属性
    在运行时调用任意一个对象的方法
    生成动态代理
    java程序中许多对象在运行时都会出现两种类型:(编译时类型)和(运行时类型)
    编译时的类型由声明该对象时使用的类型决定,运行时类型由实际赋给该对象的类型
    决定。如:Person p=new Student();
    此时p的编译时类型为Person,运行时类型为Student

    如果编译时根本无法预知该对象和类可能属于哪些类,程序只依靠运行时信息来发现
    该对象和类的真实信息,此时就必须使用(反射)

    java反射API介绍

    Class类 反射的核心类,可以获取类的属性,方法等内容信息

    下面3个类都在 java.lang.reflect包中
    Field类 表示类的属性,可以获取和设置类中属性的值

    Method类 表示类的方法,可以获取类中方法的信息,或者执行方法

    Constructor类 表示类的构造方法

    每个类被加载后,系统会为该类生成一个对应的Class对象,
    通过该Class对象可以访问java虚拟机中的这个类,java程序中获得
    Class对象通常有以下3种方式:

    1 调用某个对象的getClass()方法
    Peson p=new Person();
    Class cla=p.getClass();

    2调用某个类的class属性来获取该类对应的Class对象
    Class cla=Person.class;
    (需要在编译时就知道该类的名字)
    (代码更安全,程序性能更高,此方法比较常用)

    3使用Class类的forName((“类的全名”))静态方法
    Class cla=Class。forName(“person”)错误的xx

    Class cla=Class.forName("com.pb.jdbv.reflection.Person");正确

     

     

     

     

     

     

     

     

  • 相关阅读:

    【工作】---前后端联调
    【react】---Immutable的基本使用
    【react】传值
    【原生】 HTML DOM 事件,各种事件类型、事件种类
    两台笔记本电脑之间实现屏幕扩展
    【看图学习后台管理系统】
    【bug】在react开发中,使用link 跳转中,无法点击跳转的问题
    【前端工程师】 web 安全问题
    【前端工程师】 性能和效率 优化的问题
  • 原文地址:https://www.cnblogs.com/chenleixing-2017/p/7649482.html
Copyright © 2011-2022 走看看