說明:如果您有任何疑問或想咨詢其他業務請撥打電話 400 685 0732
全網監測海量數據按需發布監測預警
實時把握輿情動態精準追溯信息源頭
在學習java的過程當中,我們經常會使用到java反射,這種反射主要是指在運行狀態的過程當中,對于任何一個類別都能夠知道這個類別所屬的類型,因此現在判斷那點屬性的過程當中經常會用得上。那么java反射具體的作用是什么又該如何獲取?這就是我們今天所要了解的內容。
java反射——java反射的作用
Java反射機制主要提供了以下功能:在運行時判斷任意一個對象所屬的類;在運行時構造任意一個類的對象;在運行時判斷任意一個類所具有的成員變量和方法;在運行時調用任意一個對象的方法;生成動態代理。
有時候我們說某個語言具有很強的動態性,有時候我們會區分動態和靜態的不同技術與作法。我們朗朗上口動態綁定(dynamic binding)、動態鏈接(dynamic linking)、動態加載(dynamic loading)等。然而“動態”一詞其實沒有絕對而普遍適用的嚴格定義,有時候甚至像面向對象當初被導入編程領域一樣,一人一把號,各吹各的調。
一般而言,開發者社群說到動態語言,大致認同的一個定義是:“程序運行時,允許改變程序結構或變量類型,這種語言稱為動態語言”。從這個觀點看,Perl,Python,Ruby是動態語言,C++,Java,C#不是動態語言。
盡管在這樣的定義與分類下Java不是動態語言,它卻有著一個非常突出的動態相關機制:Reflection。這個字的意思是“反射、映象、倒影”,用在Java身上指的是我們可以于運行時加載、探知、使用編譯期間完全未知的classes。換句話說,Java程序可以加載一個運行時才得知名稱的class,獲悉其完整構造(但不包括methods定義),并生成其對象實體、或對其fields設值、或喚起其methods。這種“看透class”的能力(the ability of the program to examine itself)被稱為introspection(內省、內觀、反省)。Reflection和introspection是常被并提的兩個術語。
java反射如何獲取
Java允許我們從多種管道為一個class生成對應的Classobject。
Classobject誕生管道
示例:
1)運用getClass()
注:每個class都有此函數
Stringstr=”abc”;
Classc1=str.getClass();
2)運用Class.getSuperclass()
Buttonb=newButton();
Classc1=b.getClass();
Classc2=c1.getSuperclass();
3)運用staticmethod——Class.forName()(最常被使用)
Classc1=Class.forName(“java.lang.String”);
Classc2=Class.forName(“java.awt.Button”);
Classc3=Class.forName(“java.util.LinkedList$Entry”);
Classc4=Class.forName(“I”);
Classc5=Class.forName(“.class”);
4)運用primitivewrapperclasses的TYPE語法
Classc1=Boolean.TYPE;
Classc2=Byte.TYPE;
Classc3=Character.TYPE;
Classc4=Short.TYPE;
Classc5=Integer.TYPE;
Classc6=Long.TYPE;
Classc7=Float.TYPE;
Classc8=Double.TYPE;
Classc9=Void.TYPE。
以上就是有關java反射的所有介紹了,java反射是java學習過程當中的一個基礎點,因此學習java的朋友一定不要錯過。如果你還想了解更多與之相關的信息,歡迎關注我們文軍營銷的官網。
推薦閱讀
說明:如果您有任何疑問或想咨詢其他業務請撥打電話 400 685 0732