java反射机制深入理解剖析.pdf

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

j ava反射机制深⼊理解剖析 在j ava开发中有⼀个⾮常重要的概念就是j ava反射机制,也是j ava的重要特征之⼀。反 射的概念是由Smith在1982年⾸次提 的,主要是指程序可以访问、检测和修改它本 ⾝状态或⾏为的⼀种能⼒,通过反射可以调⽤私有⽅法和私有属性,⼤部分框架也都 是运⽤反射原理的。j ava通常是先有类再有对象,有对象就可以调⽤⽅法或者属性, j ava 中的反射其实是通过Class对象来调⽤类⾥⾯的⽅法。掌握了反射的知识,才能更 好的学习j ava⾼级课程。 反射简介: 主要是指程序可以访问,检测和修改它本⾝状态或⾏为的⼀种能⼒,并能根据⾃⾝⾏ 为的状态和结果,调整或修改应⽤所描述⾏为的状态和相关的语义。 ⼀个类有多个组成部分,例如:成员变量、⽅法、构造⽅法等,反射就是加载类,并解 剖 类的各个组成部分。 反射机制主要提供以下功能: ①在运⾏时判断任意⼀个对象所属的类; ②在运⾏时构造任意⼀个类的对象; ③在运⾏时判断任意⼀个类所具有的成员变量和⽅法; ④在运⾏时调⽤任意⼀个对象的⽅法; ⑤⽣成动态代理。 j ava中的反射及作⽤: 假如有两个程序员,⼀个程序员在写程序的时需要使⽤第⼆个程序员所写的类,但第 ⼆个程序员并没完成他所写的类。那么第⼀个程序员的代码是不能通过编译的。此 时,利⽤Java反射的机制,就可以让第⼀个程序员在没有得到第⼆个程序员所写的类 的时候,来完成⾃⾝代码的编译。 Java的反射机制它知道类的基本结构,这种对Java类结构探知的能⼒,我们称为Java类 的“ ⾃审” 。如eclipse 中,⼀按点,编译⼯具就会⾃动的把该对象能够使⽤的所有的⽅ 法和属性全部都列 来,供⽤户进⾏选择。这就是利⽤了Java反射的原理,是对我们 创建对象的探知、⾃审。 j ava反射机制中有哪些类: java.lang.Class; java.lang.reflect.Constructor; java.lang.reflect.Field; java.lang.reflect.Method; java.lang.reflect.Modifier; 反射机制的相关API 通过⼀个对象获 完整的包名和类名 : package net.xsoftlab.baike; public class TestReflect { public static void main String[] args) throws Exception { TestReflect testReflect = new TestReflect ); System.out.println testReflect.getClass ).getName )); // 结果 net.xsoftlab.baike.TestReflect } } 实例化Class类对象 package net.xsoftlab.baike; public class TestReflect { public static void main String[] args) throws Exception { Class? class1 = null; Class? class2 = null; Class? class3 = null; // ⼀般采⽤这种形式 class1 = Class.forName net.xsoftlab.baike.TestReflect); class2 = new TestReflect ).getClass ); class3 = TestReflect.class; System.out.println 类名称 + class1.getName )); System.out.println 类名称 + class2.getName )); System.out.println 类名称 + class3.getName )); } } 获取⼀个对象的⽗类与实现的接⼜ package net.xsoftlab.baike; import java.io.Serializable; public class TestReflect implements Ser

文档评论(0)

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

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

1亿VIP精品文档

相关文档