- 相關(guān)推薦
Java反射機(jī)制常用API
Class是Reflection故事起源。針對任何您想探勘的class,唯有先為它產(chǎn)生一個Class object,接下來才能經(jīng)由它喚起為數(shù)十多個的Reflection APIs。首先看看Class,反射的核心類,所有的操作都是圍繞該類來生成的。
Java允許我們從多種管道為一個class生成對應(yīng)的Class object:
Java代碼
//運(yùn)用Class.forName()
Class c1 = Class.forName("java.lang.String");
//運(yùn)用getClass(),每個object都有此方法
String str = "abc";
Class c2 = str.getClass();
//運(yùn)用getSuperclass(),每個class對象都有此方法
Button b = new Button();
Class c3 = b.getClass();
Class c4 = c3.getSuperclass();
//運(yùn)用.class 語法
Class c5 = String.class;
Class c6 = Integer.class;//java.lang.Integer
Class c7 = java.awt.Button.class;
Class c8 = int.class;//Integer.TYPE==int.class
Class c9 = int[].class;
//運(yùn)用primitive wrapper classes(原始包裝類)的TYPE語法
Class c10 = Integer.TYPE;//表示基本類型int的Class實(shí)例,與int.class返回結(jié)果一樣
Class c11 = Byte.TYPE;
Class c12 = Character.TYPE;
Class c13 = Short.TYPE;
Class c14 = Boolean.TYPE;
Class c15 = Long.TYPE;
Class c16 = Float.TYPE;
Class c17 = Double.TYPE;
Class c18 = Void.TYPE;
Java的訪問控制
public, protected, private這些限定符和C++一樣。
對于一個類來說,JAVA有package限定和public限定。一個.java文件是JAVA的編譯單元,必須是含有唯一的public類,代表了這個編譯單元對于其他的編譯單元的接口。而其他的class都是package限定。然而這一點(diǎn)并沒有在C++上增加任何東西。C++的編譯單元是.obj文件。另一個編譯單元在編譯的時候,只要包含相對應(yīng)的頭文件,就能訪問其中定義的類。但是你完全可以將一些類的定義放在實(shí)現(xiàn)文件中,保持你的頭文件只有一個類的定義。那么你的編譯單元對外就只有一個接口了。
【Java反射機(jī)制常用API】相關(guān)文章:
JAVA認(rèn)證基礎(chǔ)知識:基于反射機(jī)制的服務(wù)代理調(diào)用09-20
2016年JAVA認(rèn)證基礎(chǔ)知識:基于反射機(jī)制的服務(wù)代理調(diào)用08-21
Java語言的特點(diǎn)和實(shí)現(xiàn)機(jī)制10-01
javascript字符串對象常用api函數(shù)小結(jié)06-22
PHP imagick API中文簡介09-01
Java枚舉的常用方法10-05
Java數(shù)組定義常用方法09-28
Java與Java web的區(qū)別08-10
折疊J2EE的核心API與組件積累08-25