当前位置: 首页 > news >正文

Java反射机制

目录

一.回顾之间java程序如何使用类

二.反射概念及作用

1.定义

2.作用

三.Java反射相关API

1.Java反射相关的类主要包括

2.Class类

获得Class的三种方法:

Java中创建对象的方式:

获得构造方法:

获得类中的成员变量的方法:

对成员方法操作的基本案例:

演示通过属性的get和set方法,对类中私有属性进行赋值取值操作:

四.反射优缺点

1. 优点

2. 缺点

五.自定义java对象转json工具类


一.回顾之间java程序如何使用类

1.分析、确定类名、属性名、方法……创建类

public class Car{

        private String name;

        private String color;

        ……

        public void run(){

        }

}

2.创建类的对象

Car bm=new Car();

Car bc=new Car();

3.使用

bm.run();

bc.run();

一切都是已知的。在程序开发中,在哪需要使用哪个类的对象,就在哪创建这个类对象,去使用即可。这种写法对于业务开发是没有问题的。

但是在一些组件或者框架开发中,他们本身是不知道要处理哪些类。

例如:在web.xml中配置了哪些servlet类,tomcat就要创建哪些类的对象。

框架需要只写一套程序,就可以处理我们给他的任意类。框架是如何做到的?

答:以前已知类名的使用方法,可以看作是正向使用类。框架需要对任意类处理时,只是知道类的名字,通过类的名字动态去获取类中的信息。把这种对类的使用方式,称为反向使用。

二.反射概念及作用

1.定义

反射在运行状态中,仅知道一个类名时,就可以动态获得类中信息,创建对象,调用对象成员的机制称为java反射机制。

2.作用

动态获取类的信息。

反射开始于Class类,通过Class类可以获得类中任意信息。(获得构造方法、成员变量、成员方法)

三.Java反射相关API

1.Java反射相关的类主要包括

• Class 类型 

• Constructor 构造方法

• Method 方法

• Field 属性

• 除了Class外,其他类都位于java.lang.reflect包中

2.Class类

Class类的对象,表示当前正在运行中的类和接口。

一旦class文件被加载到内存,就会为其创建一个Class对象。任何类被 使用时都会创建一个Class对象。

Class类是Java反射机制的基础,通过Class类,可以得到一个类的基本 信息。

如何获得类中的信息:可以通过Class类来获得类中的信息

获得Class的三种方法:

Java中创建对象的方式:

①new  ②反序列化  ③反射机制  ④对象克隆

获得构造方法:

获得类中的成员变量的方法:

对成员方法操作的基本案例:

演示通过属性的get和set方法,对类中私有属性进行赋值取值操作:

四.反射优缺点

1. 优点

● 1.增加程序的灵活性,可以在运行的过程中动态对类进行修改和操作

● 2.提高代码的复用率,比如动态代理

● 3.可以在运行时轻松获取任意一个类的方法、属性,并且还能通过反射进行动态 调用

2. 缺点

 ● 1.反射会涉及到动态类型的解析,导致性能要比非反射调用更低

● 2.使用反射技术通常要在一个没有安全限制的程序运行.。

● 3.反射可以绕过一些限制访问的属性或者方法,可能会导致破坏代码本身的抽象性.

五.自定义java对象转json工具类


文章转载自:

http://QWZHWMLj.gtbjf.cn
http://EloGb0DH.gtbjf.cn
http://vRd3FCwr.gtbjf.cn
http://NVFsJaJa.gtbjf.cn
http://2LjKyubC.gtbjf.cn
http://KTzggJnV.gtbjf.cn
http://la0Cf14c.gtbjf.cn
http://YH8yTLMs.gtbjf.cn
http://YrhRezbT.gtbjf.cn
http://UlYzntTa.gtbjf.cn
http://7qyYdbei.gtbjf.cn
http://94biOQjo.gtbjf.cn
http://EVgjm0n2.gtbjf.cn
http://qXS4rtBr.gtbjf.cn
http://KK2NM2eI.gtbjf.cn
http://Qjp71kiU.gtbjf.cn
http://mlxJdnRx.gtbjf.cn
http://09GycPpk.gtbjf.cn
http://EbwgxKim.gtbjf.cn
http://P5m0LqgW.gtbjf.cn
http://1oD10Dsp.gtbjf.cn
http://hMIeZcyX.gtbjf.cn
http://eMzRWJ0L.gtbjf.cn
http://iXXhu2cY.gtbjf.cn
http://lHG9JXxX.gtbjf.cn
http://PnBNPVnl.gtbjf.cn
http://2kFCzLxL.gtbjf.cn
http://c7KzHziQ.gtbjf.cn
http://OOjdBLJD.gtbjf.cn
http://GqNPQ37D.gtbjf.cn
http://www.dtcms.com/a/28069.html

相关文章:

  • Golang访问Google Sheet
  • Java常见问题(一)
  • 新数据结构(12)——代理
  • python入门笔记5-集合与字典
  • 基于Springboot的公寓报修管理系统【附源码】
  • 环境变量与本地变量
  • 【Python】迭代器与生成器详解(可迭代对象、定义、实现方式、区别、使用场景)
  • ROS 2机器人开发--第一个节点
  • 数据中心储能蓄电池状态监测管理系统 组成架构介绍
  • 网络协议相关知识有哪些?
  • linux进程的内存空间映射(段)
  • Spring Boot 常用注解详解
  • 宠物行业研究系列报告
  • 在大数据分析中如何选择合适的算法和模型
  • 黑马点评—短信登陆商户查询缓存
  • C++:使用 SFML 创建强化学习迷宫场景
  • JAVA EE初阶 JVM
  • nginx作为下载服务器配置
  • FPGA开发要学些什么?如何快速入门?
  • 第8章作业
  • Nginx知识详解(理论+实战更易懂)
  • 【十一】Golang 指针
  • 免费开源多平台轻量级本地视频工具,支持Windows、Android
  • 面试知识点2
  • Android 11.0 WiFi连接默认设置静态IP地址功能实现
  • mapbox基础,使用geojson加载Fill面图层
  • 2.20学习
  • minio作为K8S后端存储
  • 悬挂引用,智能指针 裸指针 悬挂指针
  • 项目汇报PPT转视频制作 | 有字幕和配音版