Field是一個位於java.lang.reflect包下的類,用來描述類的屬性信息,功能主要包括:
- 獲取哦大年對象的成員變量類型
- 對成員變量重新設值
Field類對象:
Class.getFields(): 獲取類中public類型的屬性,返回一個包含某些 Field 對象的數組,該數組包含此 Class 對象所表示的類或接口的所有可訪問公共字段
getDeclaredFields(): 獲取類中所有的屬性(public、protected、default、private),但不包括繼承的屬性,返回 Field 對象的一個數組
getField(String name): 獲取類特定的方法,name參數指定了屬性的名稱
getDeclaredField(String name): 獲取類特定的方法,name參數指定了屬性的名稱
Field 類對象常用方法:
Field.getType():返回這個變量的類型
Field.getGenericType():如果當前屬性有簽名屬性類型就返回,否則就返回 Field.getType()
isEnumConstant() : 判斷這個屬性是否是枚舉類
Field.getModifiers() 以整數形式返回由此 Field 對象表示的字段的 Java 語言修飾符
getName() : 獲取屬性的名字
get(Object obj) 返回指定對象obj上此 Field 表示的字段的值
set(Object obj, Object value) 將指定對象變量上此 Field 對象表示的字段設置為指定的新值
isAnnotationPresent(Class<? extends Annotation> annotationClass):如果該字段對象上有指定類型的注解,則返回true,否則為false
getAnnotation(Class<T> annotationClass):如果該字段對象存在指定類型的注解,則返回該注解,否則返回null
只有類級別的注解會被繼承得到,對於其他對象而言,getAnnotation() 方法與 getDeclaredAnnotation() 方法作用相同