所有类


java.lang.reflect
类 Field

java.lang.Object
  继承者 java.lang.reflect.AccessibleObject
      继承者 java.lang.reflect.Field
所有已实现的接口:
AnnotatedElement, Member

public final class Field
   
   
   
   
   
extends AccessibleObject
implements Member

Field 提供有关类或接口的单个字段的信息,以及对它的动态访问权限。反射的字段可能是一个类(静态)字段或实例字段。

Array 允许在执行 get 或 set 访问操作期间进行扩展转换,但如果将发生收缩转换,则抛出一个 IllegalArgumentException

另请参见:
Member, Class, Class.getFields(), Class.getField(String), Class.getDeclaredFields(), Class.getDeclaredField(String)

字段摘要
 
从接口 java.lang.reflect.Member 继承的字段
DECLARED, PUBLIC
 
方法摘要
 booleanequals(Object obj)
          将此 Field 与指定对象比较。
 Objectget(Object obj)
          返回指定对象上此 Field 表示的字段的值。
<T extends Annotation>
T
getAnnotation(Class<T> annotationClass)
          如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。
 booleangetBoolean(Object obj)
          获得一个静态或实例 boolean 字段的值。
 bytegetByte(Object obj)
          获得一个静态或实例 byte 字段的值。
 chargetChar(Object obj)
          获得 char 类型或另一个通过扩展转换可以转换为 char 类型的基本类型的静态或实例字段的值。
 Annotation[]getDeclaredAnnotations()
          返回直接存在于此元素上的所有注释。
 Class<?>getDeclaringClass()
          返回表示类或接口的 Class 对象,该类或接口声明由此 Field 对象表示的字段。
 doublegetDouble(Object obj)
          获得 double 类型或另一个通过扩展转换可以转换为 double 类型的基本类型的静态或实例字段的值。
 floatgetFloat(Object obj)
          获得 float 类型或另一个通过扩展转换可以转换为 float 类型的基本类型的静态或实例字段的值。
 TypegetGenericType()
          返回一个 Type 对象,它表示此 Field 对象所表示字段的声明类型。
 intgetInt(Object obj)
          获得 int 类型或另一个通过扩展转换可以转换为 int 类型的基本类型的静态或实例字段的值。
 longgetLong(Object obj)
          获得 long 类型或另一个通过扩展转换可以转换为 long 类型的基本类型的静态或实例字段的值。
 intgetModifiers()
          以整数形式返回由此 Field 对象表示的字段的 Java 语言修饰符。
 StringgetName()
          返回此 Field 对象表示的字段的名称。
 shortgetShort(Object obj)
          获得 short 类型或另一个通过扩展转换可以转换为 short 类型的基本类型的静态或实例字段的值。
 Class<?>getType()
          返回一个 Class 对象,它标识了此 Field 对象所表示字段的声明类型。
 inthashCode()
          返回该 Field 的哈希码。
 booleanisEnumConstant()
          如果此字段表示枚举类型的元素,则返回 true;否则返回 false
 booleanisSynthetic()
          如果此字段是复合字段,则返回 true;否则返回 false
 voidset(Object obj, Object value)
          将指定对象变量上此 Field 对象表示的字段设置为指定的新值。
 voidsetBoolean(Object obj, boolean z)
          将字段的值设置为指定对象上的一个 boolean 值。
 voidsetByte(Object obj, byte b)
          将字段的值设置为指定对象上的一个 byte 值。
 voidsetChar(Object obj, char c)
          将字段的值设置为指定对象上的一个 char 值。
 voidsetDouble(Object obj, double d)
          将字段的值设置为指定对象上的一个 double 值。
 voidsetFloat(Object obj, float f)
          将字段的值设置为指定对象上的一个 float 值。
 voidsetInt(Object obj, int i)
          将字段的值设置为指定对象上的一个 int 值。
 voidsetLong(Object obj, long l)
          将字段的值设置为指定对象上的一个 long 值。
 voidsetShort(Object obj, short s)
          将字段的值设置为指定对象上的一个 short 值。
 StringtoGenericString()
          返回一个描述此 Field(包括其一般类型)的字符串。
 StringtoString()
          返回一个描述此 Field 的字符串。
 
从类 java.lang.reflect.AccessibleObject 继承的方法
getAnnotations, isAccessible, isAnnotationPresent, setAccessible, setAccessible
 
从类 java.lang.Object 继承的方法
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

方法详细信息

getDeclaringClass

public Class<?> getDeclaringClass()
返回表示类或接口的 Class 对象,该类或接口声明由此 Field 对象表示的字段。

指定者:
接口 Member 中的 getDeclaringClass
返回:
表示声明基础成员的类的对象

getName

public String getName()
返回此 Field 对象表示的字段的名称。

指定者:
接口 Member 中的 getName
返回:
基础成员的简单名称

getModifiers

public int getModifiers()
以整数形式返回由此 Field 对象表示的字段的 Java 语言修饰符。应该使用 Modifier 类对这些修饰符进行解码。

指定者:
接口 Member 中的 getModifiers
返回:
基础成员的 Java 语言修饰符
另请参见:
Modifier

isEnumConstant

public boolean isEnumConstant()
如果此字段表示枚举类型的元素,则返回 true;否则返回 false

返回:
当且仅当此字段表示一个枚举类型的元素时,才返回 true
从以下版本开始:
1.5

isSynthetic

public boolean isSynthetic()
如果此字段是复合字段,则返回 true;否则返回 false

指定者:
接口 Member 中的 isSynthetic
返回:
当且仅当此字段是一个按 Java Language Specification 定义的复合字段时,才返回 true。
从以下版本开始:
1.5

getType

public Class<?> getType()
返回一个 Class 对象,它标识了此 Field 对象所表示字段的声明类型。

返回:
标识此对象所表示字段的声明类型的 Class 对象

getGenericType

public Type getGenericType()
返回一个 Type 对象,它表示此 Field 对象所表示字段的声明类型。

如果 Type 是一个参数化类型,则返回的 Type 对象必须准确地反映源代码中使用的实际类型参数。

如果基础字段的类型是一个类型变量或者是一个参数化类型,则创建它。否则将解析它。

返回:
返回表示此 Field 对象所表示字段的声明类型的 Type 对象
抛出:
GenericSignatureFormatError - 如果一般字段签名不符合 Java Virtual Machine Specification, 3rd edition 中指定的格式
TypeNotPresentException - 如果基础字段的一般类型签名引用了不存在的类型声明
MalformedParameterizedTypeException - 如果基础字段的一般签名引用了一个因某种原因而无法实例化的参数化类型
从以下版本开始:
1.5