Java反射机制PPT.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java反射机制PPT汇编

案例五:趁热打铁(分析问题) 已知有一个user实体(属性id,name,phone)需要被update 我们的解决方式其实很简单: 首先User loadUser = session.load(user.getId); 此时loadUser是持久化的 然后使用loadUser.setXXX(user.getXXX)方法把需要更新的字段set一下 至于怎么判断哪些属性需要更新,我们可以通过反射先获得所有的getXXX方法,然后逐个invoke获得它们的值,判断一下如果值需要更新才执行loadUser.setXX(user.getXXX) 2010-12-2 第*页 成都天府软件园有限公司TOSC-ITO 案例五:趁热打铁(解决问题) 看源码: 2010-12-2 第*页 成都天府软件园有限公司TOSC-ITO Spring框架的IOC的简化实现 2010-12-2 第*页 成都天府软件园有限公司TOSC-ITO Java反射总结 只要用到反射,先获得Class Object 没有方法能获得当前类的超类的private方法和属性,你必须通过getSuperclass()找到超类以后再去尝试获得 通常情况即使是当前类,private属性或方法也是不能访问的,你需要 设置压制权限setAccessible(true)来取得private的访问权。但说实话,这已经破坏了面向对象的规则,所以除非万不得已,请尽量少用。 Array对象并未讲解,请下来自己学习。 2010-12-2 第*页 成都天府软件园有限公司TOSC-ITO Homework 通过反射找出java.lang.Math 这个类的构造函数、属性和方法。 作业提交期限:2010年12月31日 2010-12-2 成都天府软件园有限公司TOSC-ITO 第*页 The end * n n n Java反射机制 概述 本课程主要讲述Java反射机制 本课程要求大家对Java泛型知识有所了解,因为程序代码中大量使用了泛型相关知识 2010-12-2 第*页 成都天府软件园有限公司TOSC-ITO 目录 Java反射简介………………………4 Class Object ………………………8 动态实例化 ………………………11 Method使用 ………………………14 Field使用 ………………………16 实用案例 ………………………18 总结 ………………………22 2010-12-2 第*页 成都天府软件园有限公司TOSC-ITO 动态语言 “程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”。从这个观点看,Perl,Python,Ruby是动态语言,C++,Java,C#不是动态语言。 尽管在这样的定义与分类下Java不是动态语言,它却有着一个非常突出的动态相关机制:Reflection。 2010-12-2 第*页 成都天府软件园有限公司TOSC-ITO 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。 2010-12-2 第*页 成都天府软件园有限公司TOSC-ITO Java反射的应用 Spring框架:IOC(控制反转) Hibernate框架:关联映射等 白盒测试 2010-12-2 第*页 成都天府软件园有限公司TOSC-ITO Java 反射相关的API java.lang包下 ClassT:表示一个正在运行的 Java 应用程序中的类和接口,是Reflection的起源 java.lang.reflect包下 Field 类:代表类的成员变量(也称类的属性) Method类:代表类的方法 Constructor 类:代表类的构造方法 Array类:提供了动态创建数组,以及访问数组的元素的静态方法 2010-12-2 第*页 成都天府软件园有限公司TOSC-ITO ClassT 类是程序的一部分,每个类都有一个Class对象。换言之,每当编写并且编译了一个新类,就会产生一个Class对象 Class 没有公共构造方法。Class 对象是在加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造的,因此不能显式地声明一个Class对象 Class是Reflection起源。要想操纵类中的属性和方法,都必须从获取Class object开始 2010-12-2 第*页 成

文档评论(0)

wyjy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档