一:反射機制
經過對象獲取它所屬的類。反射機制的源頭是Class類。
Class類
Class類的實例表示正在運行的Java應用程序中的類和接口。
二:獲取Class類的實例的三種方法:
1. Class.forName("xxx.xxx.類名");
2. getClass() 返回運行時類
3. 類.class (Android中常常會用到)ide
三:Class類的經常使用方法:
1.public Field[] getFields() 返回全部public的字段
2.public Field[] getDeclaredFields() 返回全部聲明的字段(包括private字段)
3.public Method[] getDeclaredMethods() 返回聲明的全部方法(不包括構造方法)
4.public Constructor<?>[] getDeclaredConstructors() 返回全部構造方法
5.Constructor<?> getDeclaredConstructor(Class<?>... xxx)獲取某個具體的構造方法
6.public T newInstance()
建立此Class對象所表示的類的一個新實例。類中必須含有無參構造!
7.public Method getMethod(String name,
Class<?>... parameterTypes)
name - 方法名
parameterTypes - 參數列表對象
四:Field類的經常使用方法
public String getName() 返回此Field對象表示的字段的名稱。
getModifiers() 獲取字段修飾符的整數形式
getType() 獲取字段類型的Class形式
getName() 獲取字段名稱接口
五:Method類經常使用方法
getModifiers() 獲取方法修飾符的整數形式
Class<?>[] types=method.getParameterTypes(); 獲取全部的參數類型
getReturnType() 獲取返回值類型
getName() 獲取方法名稱
invoke(Object obj,Object... args) 調用此方法,obj:調用對象 args...:傳遞的參數get
六:Constructor類(表明構造方法)
public T newInstance(Object... initargs)調用有參構造實例化對象it
七:Annotation註解:
@Override
檢查子類是否正確複寫了父類的某個方法。
@SuppressWarnings(xxx)
壓制警告
@Deprecated
不建議使用的方法或類io
補充:
一:對象克隆
Object類的方法:
protected Object clone() 建立並返回此對象的一個副本。
只有實現了Cloneable接口的類的對象才能被克隆。class
二:Jar包
JAR(Java Archive)
打Jar包的方法:jar -cvf jar包名稱.jar 要打包的文件夾
c:(create)新建jar包
v:(verbose) 顯示打包的詳細過程
f:(file) 打包文件打包