Java 反射總結

1、反射的定義

  程序能夠訪問,檢測和修改它自己狀態或行爲的一種能力,並能根據自身行爲的狀態和結果,調整或修改應用所描述行爲的狀態和相關的語義。java

 

2、反射的類

1)反射類

java.lang.Class         數組

java.lang.reflect.Constructor異步

java.lang.reflect.Field      this

java.lang.reflect.Methodurl

java.lang.reflect.Modifierspa

 2)相關類

AccessibleObjectcode

Array對象

Proxy接口

 

3、Class

(1)獲取Class對象的三種方式

  • 類名.class
  • Class.forName()
  • 對象.getClass()

(2)Class的成員方法

1)構造方法

getConstructor資源

getConstructors

getDeclaredConstructor

getDeclaredConstructors

2)變量域

getField

getFields

getDeclaredField

getDeclaredFields

3)方法

getMethod

getMethods

getDeclaredMethod

getDeclaredMethods

4)成員類

getClasses

getDeclaredClasses

5)類註解

getAnnnotation

getAnnnotations

getAnnnotationsByTpe

6)父類

getSuperClass

getGenericSuperClass    獲取包含泛型的父類

getAnnotatedSuperclass   獲取extends父類時的標註的註解和父類,如class  B extends @Anno A {  }

7)接口

getInterfaces

getGenericInterfaces      獲取包含泛型的接口

getAnnotatedInterfaces  獲取implements接口時的標註的註解和接口,如class  C implements @AnnoA A,@AnnoB B {  }

8)當即封閉類

getDeclaringClass  返回Class對象,表示this類在return類中被聲明,this類對象所表示的類或接口是return類的成員。

9)封閉

getEnclosingClass

getEnclosingConstructor

getEnclosingMethod

10)類型判斷

isInstance

isPrimitive

isArray

isMemberClass              成員類

isLocalClass                  局部類

isAnnonymousClass      匿名類

isInterface

isEnum

isAnnotation

11)類名

getName                     內部名          

getSimpleName          縮寫名

getCanonicalName    全稱名

12)其餘方法

newInstance                     無參構造方法建立對象,沒有無參構造方法拋異常InstantiationException

getClassLoader

getTypeParameters         泛型參數

getModifiers                     修飾符

getPackage

getResource                         獲取資源返回url

getResourceAsStream         獲取資源返回InputStream

 

4、constructor

1)特殊

getName

getModifiers

isVarArgs      可變參

isSynthetic             由編譯器自動添加,在非靜態成員類用於傳人外部類對象的構造方法是複合構造方法

newInstance

2)參數

getGenericParameterTypes       形參泛型參數類型

getParameterTypes                    形參參數類型

getTypeParameters                    泛型參數佔位符 

3)異常

getExceptionTypes

getGenericExceptionTypes

4)註解

getAnnotation

getDeclaredAnnotations

getParameterAnnotations    註解在形參

 

5、Field

1)特殊

getName

getDeclaringClass   獲取Field聲明所在的類

getModifiers

isEnumConstant    是否枚舉

isSynthetic             由編譯器自動添加,在非靜態成員類用於訪問外部類的變量是複合變量

2)get基本類型與Object

getXXX

get

3)set基本類型與Object

setXXX

set

4)類型

getType

getGenericType

5)註解

getAnnotation

getDeclaredAnnotations

 

6、Method

 1)特殊

getName

invoke        異步執行

getDeclaringClass   獲取Method聲明所在的類

getModifiers

isVarArgs        可變參

getDefaultValue

isSynthetic     由編譯器自動添加,在非靜態成員類用於訪問外部類的方法是複合方法

2)參數

getGenericParameterTypes       形參泛型參數類型

getParameterTypes                    形參參數類型

3)返回值

getReturnType

getGenericReturnType

4)註解

getAnnotation

getDeclaredAnnotations

getParameterAnnotations

5)異常

getExceptionTypes

getGenericExceptionTypes

 

7、Modifier

1)靜態字段

PUBLIC

FINAL

STRICT strictfp

VOLATILE

...

2)方法

isPublic

isFinal

isStrict

isVolatile

...

 

8、AccessibleObject

getAnnotation

getAnnotations

getDeclaredAnnotations

isAccessible

isAnnotationPresent            若是指定類型的註釋存在於此元素上,則返回 true,不然返回 false。

setAccessible                      靜態方法

setAccessible

 

9、Array

靜態方法

get

getXXX

getLength

newInstance             有指定數組維度

set

setXXX

 

10、Proxy

靜態方法

getInvocationHandler

getProxyClass

isProxyClass

newProxyInstance

相關文章
相關標籤/搜索