一、反射的概述

反射机制允许java程序加载一个运行时才得知其名称的类,获悉其完整API信息,包括其修饰符、超类、实现的接口,也包括属性和方法的所有信息;

二、反射的作用

能够分析类能力的程序成为反射(reflective)。反射的功能极其强大,可以用来:

a、在运行时分析类的能力

b、在运行时检查对象,例如,编写一个适用于所有类的toString方法。

c、实现泛型数组操作代码

注:如果只对编写应用程序感兴趣,而不是要为其他java程序员构建工具,可以只做了解

实现Java反射机制的类:

a、java.lang.Class

b、java.lang.reflect.Constructor

c、java.lang.reflect.Field

d、java.reflect.Method

三、Class类

每个类都有与之对应的一个Class类对象,哪怕它是基础数据类型,例如int,enum,或者注解,Class类对象是反射的入口

获取Class对象的三种方式

a.Class.forName("")(双引号里面是类的全类名)

b.对象名.getClass()

c.类名.Class

四、在什么地方用到了反射?

new了一个person对象,当点的时候就是通过person对象得到它所对应的Class对象得到Person类的信息。

五、方法

a、Class

b、Field

c、Method

d、constructor

六、反射的优缺点:

反射机制使人们可以在运行时查看字段和方法,从而能编写更具有通用性的程序。这种功能对于编写系统程序极其有用,但通常不适于编写应用程序。反射是很脆弱的,如果使用反射,编译器将无法查找编程错误,只有在运行时才会发现错误并导致异常,影响性能。

java 皮鞋_java反射相关推荐

  1. json 反射java 实体_java反射实现javabean转json

    BeantoModel->利用cglib BeanMap . create ( src );直接将Bean装成Map,然后model . _setAttrs (map)即可. ModeltoBe ...

  2. java 内省_Java反射与内省

    反射 用一句比较白的话来概括,反射就是让你可以通过名称来得到对象(类,属性,方法)的技术. 例如我们可以通过类名来生成一个类的实例:知道了方法名,就可以调用这个方法:知道了属性名就可以访问这个属性的值 ...

  3. java 皮鞋_Java Collections Framework——把所有的皮鞋都拿出来擦一擦

    # Java合集框架的结构 Java合集框架的设计是使用接口,抽象类和具体类的一个很好的例子. 用接口定义框架.抽象类提供这个接口的部分实现.具体类用具体的数据结构实现这个接口. Collection ...

  4. java class 生成对象_Java反射机制(创建Class对象的三种方式)

    1:SUN提供的反射机制的类: java.lang.Class java.lang.reflect.Constructor java.lang.reflect.Field java.lang.refl ...

  5. java反射机制详解_Java反射机制详解

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

  6. java f反射_java反射机制

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

  7. java 有哪些反射机制_Java 的反射机制你了解多少?

    不知道多少次听说过了Java反射机制的使用,比如:Spring 框架如何实例化IoC容器中的Bean,编码过程中如何动态的清理对象中的字段信息等等.工作中只是听说.看同事们编码实践,但是自己却只是概念 ...

  8. java反射的编译过程_Java反射机制小结和实际操作

    一.什么是反射 1.编译和运行 在了解什么是Java反射机制前,先聊聊Java的编译和运行. 还记得第一次使用记事本编写第一个Java程序的场景吗?通过命令窗口,使用javac命令编译一个.java文 ...

  9. java反射机制原理详解_java反射机制的详细讲解

    一 , 什么是java反射机制? JAVA反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象 ...

最新文章

  1. 庖丁解牛迭代器,聊聊那些藏在幕后的秘密
  2. 高斯混合模型Gaussian Mixture Model (GMM)——通过增加 Model 的个数,我们可以任意地逼近任何连续的概率密分布...
  3. 家族关系查询系统程序设计算法思路_【学习笔记】数据库基础 - 查询优化
  4. js与C++交互及C++解析json
  5. MySQL Schema与数据类型的优化
  6. Node学习笔记:建立TCP服务器和客户端之间的通信
  7. mysql服务设置远程连接 解决1251 client does not support ..问题
  8. 人工智能感知技术是机器人应用支撑技术之一
  9. Tf-idf推导及理解
  10. linux之终端的灵活使用。SCREEN
  11. strcmp函数用法
  12. 苹果手机屏幕上有白点怎么办
  13. 一个关于springboot的junit使用错误,空指针异常
  14. 计算机软件分类系统软件和,计算机化系统软件分类和验证
  15. SAP vf11发票冲销
  16. 盘点2019大佬申请证书,快来盘算下你的职业生涯
  17. 2020大二下期学期计划
  18. WebSphere MQ应急预案
  19. Win10右键菜单的添加和删除
  20. Kubernetes 生产环境安装部署 基于 Kubernetes v1.14.0 之 etcd集群

热门文章

  1. python重载模块_Python 3.0中重载模块
  2. java就_GitHub - IammyselfYBX/This_is_how_Java_should_be_learned: 《Java就应该这样学》
  3. 8051 管脚定义_8051微控制器的引脚说明
  4. 废弃fastjson!大型项目迁移Gson保姆级实战
  5. 深浅克隆面试题汇总——附详细答案
  6. [ZJOI2007]时态同步 树形DP
  7. linux安装python2环境_Python基础手册 2 —— Python 环境搭建(Linux)
  8. 炫界 (978) -(建工发现应用克隆漏)_除了DMA,这些漏损点检测与漏损区域识别技术你知道么?...
  9. 无法扩展该卷 因为群集的数量将超过文件系统_浏览器将支持Python项目!Mozilla发布Pyodide...
  10. mysql删除外键_MySQL删除外键定义的方法