Orm之Reflect(一)

Orm_Reflect_DB——Reflect(一)

ORM系列章节列表(点击查阅)

一、ORM之开篇
反射的机制以及概念我这里就不一一阐述了,度娘会告诉你。我这里主要说一下反射的应用和常用方法:

一、反射的应用:

1、反编译.class->.java;
2、通过反射机制访问Java的所有方法、属性、以及实例化对象,设置包括google源码中的hide方法;
3、这个就比较高大上了,可以用于框架的封装,达到最大程度的适配。

二、反射的常用方法:

1、如何获取Class<?>对象,这里的Class是一个类的名字,我们称之为字节码文件类,Java虚拟机会将我们写的Java文件编译成.class文件,从而衍生了这个类,通过访问.class文件的方式,达到访问Java代码的作用。
 /**
	 * 获取Class对象
	*/
	//第一种方式,通过全类名获取
	Class<?> clazz = Class.forName("com.pdm.io.Person");
	//第二种,通过属性获取
	Class<?> clazz = Object.class;
	//第三种,通过getClass方法获取
	Class<?> clazz = Object.getClass();
2、如何获取Java类中的方法:
    /**
	* 获取方法
	*/
	//根据全类名找到实体类
   <span style="white-space:pre">	</span> String className = "com.pdm.io.Person";
        //得到实体类对应的Class对象
	Class<?> clazz = Class.forName(className);
	//实例化类
	Object obj = clazz.newInstance();
		
	String methodName = "show";
	//这里获得的是公共方法,如果想获取所有方法,可用getDeclaredMethod,第二个参数是传入参数类型的Class集合
	Method show = clazz.getMethod(methodName, new Class[]{String.class,int.class});
	show.invoke(obj, "pdm" , 56);
3、如何获取Java类中的成员变量:
    /**
	* 获取字段
	*/
	String className = "com.pdm.io.Person";
	Class<?> clazz = Class.forName(className);
	String fieldName = "age";
	//获取age字段对象(公共成员字段)getField(fieldName)
	//获取所有声明字段
	Field field = clazz.getDeclaredField(fieldName);
	//设置不做权限检查
	field.setAccessible(true);
	//要先对其值的设置,必须现有对象
	Object obj = clazz.newInstance();
	field.set(obj, 56);
4、如何获取获取Java类中的构造函数,实现实例化对象目的:
    /**
	* 通过指定构造函数初始化对象
    * 1、获取字节码文件对象
	* 2、获取指定构造函数
    * 3、通过构造函数初始化对象
	*/
	Class<?> clazz = Class.forName("com.pdm.io.Person");
	//这里根据传入参数类型找到对应构造
	Constructor<?> con= clazz.getDeclaredConstructor(new Class[]{String.class,int.class});
	Object obj = con.newInstance("pdm" , 21);
	//如果是空参构造实例化,直接通过Class对象newInstance即可
	//Object obj = clazz.newInstance();
反射听起来高大上,其实不外如是,用来用去就那几个方法,当然要用好也还是有难度的,Reflect的基础讲完,我们马上进入正题,通过Orm和Reflect实现数据库查询功能吧,相信你们已经非常期待了吧。
源码:Orm_Reflect_DB




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
森林防火应急联动指挥系统是一个集成了北斗定位/GPS、GIS、RS遥感、无线网络通讯、4G网络等技术的现代化智能系统,旨在提高森林火灾的预防和扑救效率。该系统通过实时监控、地图服务、历史数据管理、调度语音等功能,实现了现场指挥调度、语音呼叫通讯、远程监控、现场直播、救火人员生命检测等工作的网络化、智能化、可视化。它能够在火灾发生后迅速组网,确保现场与指挥中心的通信畅通,同时,系统支持快速部署,适应各种极端环境,保障信息的实时传输和历史数据的安全存储。 系统的设计遵循先进性、实用性、标准性、开放性、安全性、可靠性和扩展性原则,确保了技术的领先地位和未来的发展空间。系统架构包括应急终端、无线专网、应用联动应用和服务组件,以及安全审计模块,以确保用户合法性和数据安全性。部署方案灵活,能够根据现场需求快速搭建应急指挥平台,支持高并发视频直播和大容量数据存储。 智能终端设备具备三防等级,能够在恶劣环境下稳定工作,支持北斗+GPS双模定位,提供精确的位置信息。设备搭载的操作系统和处理器能够处理复杂的任务,如高清视频拍摄和数据传输。此外,设备还配备了多种传感器和接口,以适应不同的使用场景。 自适应无线网络是系统的关键组成部分,它基于认知无线电技术,能够根据环境变化动态调整通讯参数,优化通讯效果。网络支持点对点和点对多点的组网模式,具有低功耗、长距离覆盖、强抗干扰能力等特点,易于部署和维护。 系统的售后服务保障包括安装实施服务、系统维护服务、系统完善服务、培训服务等,确保用户能够高效使用系统。提供7*24小时的实时故障响应,以及定期的系统优化和维护,确保系统的稳定运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值