- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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
您可能关注的文档
- GRE考试中的作文失分点详解-智课教育旗下智课教育.pdf
- GRE数学词汇,高分保障-智课教育旗下智课教育.pdf
- GRE数学词汇:分数和小数-智课教育旗下智课教育.pdf
- GRE词汇记忆方法汇总.docx
- GRE考试各部分分数都很重要-智课教育旗下智课教育.pdf
- GRE阅读中双重否定句型分析.docx
- GRE考试填空方法总结.pdf
- GRE考试题型设置及评分细则.pdf
- GRE考试中的作文失分点详解.pdf
- GRE词汇备考 数学词汇汇编1.pdf
- 六年级下册数学教案-1.1《百分数的初步认识和读法》西师大新课标.docx
- 六年级下册语文教案 回忆往事(人教部编版).docx
- Module 8 Unit 2 I made a kite.(教案)2023-2024学年英语五年级下册.docx
- 部编版语文四年级上册27故事二则 扁鹊治病(说课稿).docx
- 五年级上册语文教案 珍珠鸟 人教部编版.docx
- Module 4 Unit1 the balloons are flying away(教案)2023-2024学年英语六年级下册.docx
- 四年级下册美术教案-第11课 我的老师 ▏人美版(北京) .docx
- 六年级下册美术教学设计第4课 心目中的形象|广西版.docx
- 北师大版小学数学五年级下册《倒数》教学设计.docx
- 统编版语文三年级下册20 肥皂泡(教案).docx
文档评论(0)