JAVA反射機制

JAVA反射機制

在程序下對于任何一個類能知道這個類的屬性
JAVA反射機制是在運行狀态中,對于任意一個對象,都能夠調用它的任意方法和屬性;這種動态獲取信息以及動态調用對象方法的功能稱為java語言的反射機制。JAVA反射(放射)機制:程序運行時,允許改變程序結構或變量類型,這種語言稱為動态語言。從這個觀點看,Perl,Python,Ruby是動态語言,C++,Java,C#不是動态語言。但是JAVA有着一個非常突出的動态相關機制:Reflection,用在Java身上指的是我們可以于運行時加載、探知、使用編譯期間完全未知的classes。換句話說,Java程序可以加載一個運行時才得知名稱的class,獲悉其完整構造(但不包括methods定義),并生成其對象實體、或對其fields設值、或喚起其methods。
    中文名:JAVA反射機制 外文名:JAVA Reflection 别名: 所屬語言:JAVA 屬性:靜态語言 功能:動态獲取信息以及動态調用對象方法 提出時間:1982年

功能

Java反射機制主要提供了以下功能:在運行時判斷任意一個對象所屬的類;在運行時構造任意一個類的對象;在運行時判斷任意一個類所具有的成員變量和方法;在運行時調用任意一個對象的方法;生成動态代理。

有時候我們說某個語言具有很強的動态性,有時候我們會區分動态和靜态的不同技術與作法。我們朗朗上口動态綁定(dynamicbinding)、動态鍊接(dynamiclinking)、動态加載(dynamicloading)等。然而“動态”一詞其實沒有絕對而普遍适用的嚴格定義,有時候甚至像對象導向當初被導入編程領域一樣,一人一把号,各吹各的調。

一般而言,開發者社群說到動态語言,大緻認同的一個定義是:“程序運行時,允許改變程序結構或變量類型,這種語言稱為動态語言”。從這個觀點看,Perl,Python,Ruby是動态語言,C++,Java,C#不是動态語言。

盡管在這樣的定義與分類下Java不是動态語言,它卻有着一個非常突出的動态相關機制:Reflection。這個字的意思是“反射、映象、倒影”,用在Java身上指的是我們可以于運行時加載、探知、使用編譯期間完全未知的classes。

換句話說,Java程序可以加載一個運行時才得知名稱的class,獲悉其完整構造(但不包括methods定義),并生成其對象實體、或對其fields設值、或喚起其methods。這種“看透class”的能力(theabilityoftheprogramtoexamineitself)被稱為introspection(内省、内觀、反省)。Reflection和introspection是常被并提的兩個術語。

Java如何能夠做出上述的動态特性呢?這是一個深遠話題,本文對此隻簡單介紹一些概念。整個篇幅最主要還是介紹ReflectionAPIs,也就是讓讀者知道如何探索class的結構、如何對某個“運行時才獲知名稱的class”生成一份實體、為其fields設值、調用其methods。本文将談到java.lang.Class,以及java.lang.reflect中的Method、Field、Constructor等等classes。

Java之父

詹姆斯·戈士林博士以“Java技術之父”聞名于世。他是Java技術的創始人,作為Sun研究院院士,他親手設計了Java語言,完成了Java技術的原始編譯器和虛拟機。

在他的帶領下,Java現已成為互聯網的标準編程模式以及分布式企業級應用的事實标準,其跨平台的技術優勢為網絡計算帶來了劃時代的變革。目前,戈士林博士積極緻力于軟件開發工具的研究,以使軟件開發工具的功能更強大,更容易為開發人員所使用,确保應用、服務開發的迅速完成。

Java技術是Sun公司在1995年5月正式推出的。二十多年來,Java已從編程語言發展成為全球第一大通用開發平台。Java技術已為計算機行業主要公司所采納,同時也被越來越多的國際技術标準化組織所接受。1999年,Sun推出了以Java2平台為核心的J2EE、J2SE和J2ME三大平台。

随着三大平台的迅速推進,在世界上形成了一股巨大的Java應用浪潮。同時,Java技術還引發了一場無法停止的大變革,為整個Java社團帶來了巨大的潮水般的商業機會。

Java技術及其應用将有更大的發展。據IDC預計,自2001年起的其後5年内,采用Java的IT産品的價值将翻番,在2006年将達到4.53億美元,年增長率為14.9%。截止到2003年5月,注冊Java Developer Connection(JDC)的Java開發商超過300萬人,對JRE(Java運行環境)的下載達7,200萬次。Sun在JavaOne-2003大會上确定的目标是,在3~5年内使Java技術開發商從今天的300萬發展到1,000萬,以支持Java技術這一全球領先技術平台的顯赫地位。

Java反射機制概述

Java反射機制是Java程序在運行狀态下,動态獲取類中的内容以及動态調用對象的方法。此篇是對Java反射機制的一些基礎代碼操作的簡單總結。1Java反射機制概述Java反射機制就是在Java程序運行時,得到一個java類中的屬性和方法;并可以調用已經給定對象的類中的構造方法、屬性和方法。放射機制就是就像這樣動态的獲取類中構造方法、屬性和方法以及動态調用對象的方法。

相關詞條

相關搜索

其它詞條