暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
侯捷_JAVA反射机制.pdf
361
15页
0次
2021-02-22
50墨值下载
Java 反射機制(Java Reflection
侯捷觀點
1
侯捷觀點
Java
反射機制
Java Reflection
北京《程序員》
2004/09
台北《
Run!PC
2004/09
作者簡介:侯捷,資訊工作者、專欄執筆、大學教師。常著文章自娛,頗示己志。
侯捷網站:http://www.jjhou.com(繁體)
北京鏡站:http://jjhou.csdn.net(簡體)
永久郵箱:jjhou@jjhou.com
z
讀者基礎:具備
Java
語言基礎。
z
本文適用工具:
JDK1.5
z
本文程式源碼可至侯捷網站㆘載
http://www.jjhou.com/javatwo-2004-reflection-and-generics-in-jdk15-sample.ZIP
z
本文同時也是
JavaTwo-2004
技術研討會同名講題之部分內容書面整理。
z
關鍵術語:
Introspection
(內省、內觀)
Reflection
(反射)
全文提要
Reflection
Java
被視為動態(或準動態)語言的㆒個關鍵性質。這個機制允許程
式在執行期透過
Reflection APIs
取得任何㆒個已知名稱的
class
的內部資訊,包括
modifiers
(諸如
public, static
等等)
superclass
(例如
Object
實作之
interfaces
(例如
Cloneable
,也
fields
methods
的所有資訊並可於執行期改變
fields
內容或喚起
methods
。本文藉由實例,大面積示範
Reflection APIs
Java Reflection
侯捷觀點
2
時候我們說某個語言具有很強的動態性,有時候我們會區分動態和靜態的不
同技術與作法。我們朗朗㆖
動態繫結
dynamic binding
)、
動態聯
dynamic
linking
)、
動態載入
dynamic loading
。然而「動態」㆒詞其實沒有絕對而普
遍適用的嚴格定義,有時候甚至像
物件導向
當初被導入編程領域㆒樣,㆒㆟㆒把
號,各吹各的調。
㆒般而言,開發者社群說到
動態語言
,大致認同的㆒個定義是「程式執行期間,
允許改變程式結構或變數型別,這種語言稱為動態語言」。從這個觀點看,
Perl,
Python, Ruby
是動態語言,
C++, Java, C#
不是動態語言。
儘管在這樣的定義與分類
Java
不是動態語言,它卻有著㆒個非常突出的動態相
關機制:
Reflection
。這個字的意思是「反射、映象、倒」,用在
Java
身㆖指的
是我們可以於執行期載入探知使用編譯期間完全未知的
classes
換句話說
Java
程式可以載入㆒個執行期才得知名稱的
class
,獲悉其完整構造(但不包括
methods
定義),並生成其物件實體、或對其
fields
設值、或喚起其
methods
1
。這種「看
class
」的能力(
the ability of the program to examine itself
)被稱為
introspection
內省、內觀、反省)。
Reflection
introspection
是常被並提的兩個術語。
Java
如何能夠做出㆖述的動態特性呢?這是㆒個深遠話題,本文對此只簡單介
㆒些概念。整個篇幅最主要還是介紹
Reflection APIs
,也就是讓讀者知道如何探索
class
的結構、如何對某個「執行期才獲知名稱的
class
」生成㆒份實體、為其
fields
設值、呼叫其
methods
。本文將談到
java.lang.Class
,以及
java.lang.reflect
Method
,
Field
,
Constructor
等等
classes
"Class" class
眾所周知
Java
有個
Object
class
,是所有
Java classes
的繼承根源,其內宣告了數
個應該在所有
Java class
㆗被改寫的
methods
hashCode()
equals()
clone()
1
用過諸如
MFC
這類所謂
Application Framework
的程式員也許知道,
MFC
有所謂的
dynamic creation
。但它並不等同於
Java
的動態載入或動態辨識;所有能夠在
MFC
式㆗起作用的
classes
,都必須先在編譯期被編譯器「看見」。
of 15
50墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜