public final class Field extends AccessibleObject implements Member
Field提供有关信息和动态访问,一个类或接口的一个单一的领域。反射场可以是一个类(静态)字段或一个实例字段。
一个Field允许扩大转换在获取或设置访问操作发生,但抛出IllegalArgumentException如果缩小转换会发生。
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object obj)
比较这
Field与指定对象。
|
Object |
get(Object obj)
返回的
Field表示字段的值,指定对象上。
|
AnnotatedType |
getAnnotatedType()
返回一个annotatedtype表示指定类型声明的类型字段的字段表示的使用。
|
<T extends Annotation> |
getAnnotation(类<T> annotationClass)
如果存在此注释,则返回此元素的指定类型的注释,否则为空。
|
<T extends Annotation> |
getAnnotationsByType(类<T> annotationClass)
返回与此元素关联的注释。
|
boolean |
getBoolean(Object obj)
得到一个静态或实例
boolean字段的值。
|
byte |
getByte(Object obj)
得到一个静态或实例
byte字段的值。
|
char |
getChar(Object obj)
得到一个静态或实例的类型
char或另一个原始类型通过扩大转换,转换到类型
char字段的值。
|
Annotation[] |
getDeclaredAnnotations()
返回直接在该元素上的注释。
|
类<?> |
getDeclaringClass()
返回表示的类或接口声明的
Field对象表示的领域
类对象。
|
double |
getDouble(Object obj)
得到一个静态或实例的类型
double或另一个原始类型通过扩大转换,转换到类型
double字段的值。
|
float |
getFloat(Object obj)
得到一个静态或实例的类型
float或另一个原始类型通过扩大转换,转换到类型
float字段的值。
|
Type |
getGenericType()
返回一个
Type表示声明类型的
Field对象表示的场。
|
int |
getInt(Object obj)
得到一个静态或实例的类型
int或另一个原始类型通过扩大转换,转换到类型
int字段的值。
|
long |
getLong(Object obj)
得到一个静态或实例的类型
long或另一个原始类型通过扩大转换,转换到类型
long字段的值。
|
int |
getModifiers()
返回的
Field对象表示的场java语言修饰符为整数。
|
String |
getName()
返回的
Field对象表示的字段的名称。
|
short |
getShort(Object obj)
得到一个静态或实例的类型
short或另一个原始类型通过扩大转换,转换到类型
short字段的值。
|
类<?> |
getType()
返回一个
类对象标识声明类型的
Field对象表示的场。
|
int |
hashCode()
返回该
Field hashCode。
|
boolean |
isEnumConstant()
返回
true如果该字段表示枚举类型的元素;否则返回
false。
|
boolean |
isSynthetic()
返回
true如果这场是一个综合的领域;否则返回
false。
|
void |
set(Object obj, Object value)
设置域为代表的这
Field对象指定对象上的参数指定的新价值。
|
void |
setBoolean(Object obj, boolean z)
一个字段的值设置为指定对象上的
boolean。
|
void |
setByte(Object obj, byte b)
一个字段的值设置为指定对象上的
byte。
|
void |
setChar(Object obj, char c)
一个字段的值设置为指定对象上的
char。
|
void |
setDouble(Object obj, double d)
一个字段的值设置为指定对象上的
double。
|
void |
setFloat(Object obj, float f)
一个字段的值设置为指定对象上的
float。
|
void |
setInt(Object obj, int i)
一个字段的值设置为指定对象上的
int。
|
void |
setLong(Object obj, long l)
一个字段的值设置为指定对象上的
long。
|
void |
setShort(Object obj, short s)
一个字段的值设置为指定对象上的
short。
|
String |
toGenericString()
返回一个描述这个
Field字符串,包括泛型类型。
|
String |
toString()
返回一个描述这个
Field字符串。
|
getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAccessible, isAnnotationPresent, setAccessible, setAccessiblepublic 类<?> getDeclaringClass()
Field对象表示的领域
类对象。
getDeclaringClass 接口
Member
public int getModifiers()
Field对象表示的场java语言修饰符为整数。的
Modifier类应该用来解码的修饰符。
getModifiers 接口
Member
Modifier
public boolean isEnumConstant()
true如果该字段表示枚举类型的元素;否则返回
false。
true当且仅当该字段表示枚举类型的元素。
public boolean isSynthetic()
true如果这场是一个综合的领域;否则返回
false。
isSynthetic 接口
Member
public 类<?> getType()
类对象标识声明类型的
Field对象表示的场。
类对象标识声明类型的字段代表这个对象
public Type getGenericType()
Type表示声明类型的
Field对象表示的场。
如果Type是参数化类型,返回的Type对象必须准确地反映源代码中使用的实际类型参数。
如果下一个字段的类型是一个类型变量或参数化类型,则创建它。否则,它是解决。
Type表示声明类型的
Field对象表示的场
GenericSignatureFormatError如果通用字段签名不符合规定的格式
The Java™ Virtual Machine Specification
TypeNotPresentException -如果基础领域的通用型签名是指一个不存在的类型声明
MalformedParameterizedTypeException -如果基础领域通用的签名是一个参数化的类型不能被实例化的任何理由
public boolean equals(Object obj)
Field与指定对象。如果对象是相同的,则返回真。如果他们是由同一个类声明具有相同的名称和类型两
Field对象都是相同的。
equals 方法重写,继承类
Object
obj -参考对象的比较。
true obj参数相同;
false否则。
Object.hashCode(),
HashMap
public int hashCode()
Field hashCode。这是计算异或的哈希码为基础字段的声明类的名字和它的名字。
hashCode 方法重写,继承类
Object
Object.equals(java.lang.Object),
System.identityHashCode(java.lang.Object)
public String toString()
Field字符串。该格式是字段的访问修饰词,如果有的话,接着是字段类型,然后是空格,然后是类的完全限定名称,声明字段,然后是一段时间,然后是字段的名称。例如:
public static final int java.lang.thread.min_priority私有java.io.filedescriptor.fd
修饰语放在规范秩序所指定的“java语言规范”。这是public,protected或private第一,然后其他的修饰语的顺序是:static,final,transient,volatile。
public String toGenericString()
Field字符串,包括泛型类型。该格式是字段的访问改性剂,如果有的话,其次是通用字段类型,其次是空间,然后是完全限定名称的类声明字段,然后是一个周期,然后是字段的名称。
修饰语放在规范秩序所指定的“java语言规范”。这是public,protected或private第一,然后其他的修饰语的顺序是:static,final,transient,volatile。
Field字符串,包括泛型类型
public Object get(Object obj) throws IllegalArgumentException, IllegalAccessException
Field表示字段的值,指定对象上。如果它有一个原始类型,该值将被自动地包裹在一个对象中。
下面的字段的值如下所示:
如果底层的字段是静态字段,该obj参数被忽略;它可能是空的。
否则,基础字段是一个实例字段。如果指定的obj参数为空,该方法抛出一个NullPointerException。如果指定的对象不是一个实例的类或接口声明的潜在领域,该方法抛出一个IllegalArgumentException。
如果这Field对象执行java语言访问控制,和潜在的领域是不可访问的,方法会抛出一个IllegalAccessException。如果底层字段是静态的,则声明该字段的类,如果它还没有被初始化的话,将被初始化。
否则,从下面的实例或静态字段中检索值。如果字段有一个原始类型,则在返回之前,值被包裹在一个对象中,否则返回的值是。
如果该字段是隐藏在obj类型字段的值是根据前面获得的规则。
obj对象,表示字段的值是要提取
obj价值;原始值是包裹在一个合适的对象之前被返回
IllegalAccessException -如果这
Field对象执行java语言访问控制和潜在的领域是不可访问的。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或接口的方法)。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
public boolean getBoolean(Object obj) throws IllegalArgumentException, IllegalAccessException
boolean字段的值。
obj -提取
boolean值对象
boolean字段的值
IllegalAccessException -如果这
Field对象执行java语言访问控制和潜在的领域是不可访问的。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或者如果该字段值不能通过扩大转换,转换为类型
boolean。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
get(java.lang.Object)
public byte getByte(Object obj) throws IllegalArgumentException, IllegalAccessException
byte字段的值。
obj -提取
byte值对象
byte字段的值
IllegalAccessException -如果这
Field对象执行java语言访问控制和潜在的领域是不可访问的。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或者如果该字段值不能通过扩大转换,转换为类型
byte。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
get(java.lang.Object)
public char getChar(Object obj) throws IllegalArgumentException, IllegalAccessException
char或另一个原始类型通过扩大转换,转换到类型
char字段的值。
obj -提取
char值对象
char
IllegalAccessException -如果这
Field对象执行java语言访问控制和潜在的领域是不可访问的。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或者如果该字段值不能通过扩大转换,转换为类型
char。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
get(java.lang.Object)
public short getShort(Object obj) throws IllegalArgumentException, IllegalAccessException
short或另一个原始类型通过扩大转换,转换到类型
short字段的值。
obj -提取
short值对象
short
IllegalAccessException -如果这
Field对象执行java语言访问控制和潜在的领域是不可访问的。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或者如果该字段值不能通过扩大转换,转换为类型
short。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
get(java.lang.Object)
public int getInt(Object obj) throws IllegalArgumentException, IllegalAccessException
int或另一个原始类型通过扩大转换,转换到类型
int字段的值。
obj -提取
int值对象
int
IllegalAccessException -如果这
Field对象执行java语言访问控制和潜在的领域是不可访问的。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或者如果该字段值不能通过扩大转换,转换为类型
int。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
get(java.lang.Object)
public long getLong(Object obj) throws IllegalArgumentException, IllegalAccessException
long或另一个原始类型通过扩大转换,转换到类型
long字段的值。
obj -提取
long值对象
long
IllegalAccessException -如果这
Field对象执行java语言访问控制和潜在的领域是不可访问的。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或者如果该字段值不能通过扩大转换,转换为类型
long。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
get(java.lang.Object)
public float getFloat(Object obj) throws IllegalArgumentException, IllegalAccessException
float或另一个原始类型通过扩大转换,转换到类型
float字段的值。
obj -提取
float值对象
float
IllegalAccessException -如果这
Field对象执行java语言访问控制和潜在的领域是不可访问的。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或者如果该字段值不能通过扩大转换,转换为类型
float。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
get(java.lang.Object)
public double getDouble(Object obj) throws IllegalArgumentException, IllegalAccessException
double或另一个原始类型通过扩大转换,转换到类型
double字段的值。
obj -提取
double值对象
double
IllegalAccessException -如果这
Field对象执行java语言访问控制和潜在的领域是不可访问的。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或者如果该字段值不能通过扩大转换,转换为类型
double。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
get(java.lang.Object)
public void set(Object obj, Object value) throws IllegalArgumentException, IllegalAccessException
Field对象指定对象上的参数指定的新价值。新的值会自动打开如果基础领域的原始类型。
操作进行如下:
如果底层的字段是静态的,这obj参数被忽略;它可能是空的。
否则基础字段是一个实例字段。如果指定的对象参数为空,该方法抛出一个NullPointerException。如果指定对象的参数不是一个实例的类或接口声明的潜在领域,该方法抛出一个IllegalArgumentException。
如果这Field对象执行java语言访问控制,和潜在的领域是不可访问的,方法会抛出一个IllegalAccessException。
如果基础领域的最终方法抛出IllegalAccessException除非setAccessible(true)成功了这Field对象和领域是非静态的。这样设置的最后一场有意义的只有空白的final字段的类的实例序列化或重建时,才可由一个程序的其他部分访问。在任何其他上下文中使用可能具有不可预测的影响,包括程序的其他部分继续使用该字段的原始值的情况。
如果底层字段是一个原始类型,则试图将新值转换为原始类型的值的展开转换。如果尝试失败,方法会抛出一个IllegalArgumentException。
如果,后有可能展开,新的值无法转换的身份或扩大转换的基础字段的类型,方法会抛出一个IllegalArgumentException。
如果底层字段是静态的,则声明该字段的类,如果它还没有被初始化的话,将被初始化。
字段设置为可能打开和扩大新的价值。
如果该字段是隐藏在obj类型字段的值是根据前面的规则。
obj的字段应该被修改的对象
value为
obj改性领域的新价值
IllegalAccessException -如果这
Field对象执行java语言访问控制及相关领域是无法访问或最终。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或如果展开转换失败。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
public void setBoolean(Object obj, boolean z) throws IllegalArgumentException, IllegalAccessException
boolean。这种方法相当于
set(obj, zObj),哪里
zObj是
Boolean对象和
zObj.booleanValue() == z。
obj的字段应该被修改的对象
z为
obj改性领域的新价值
IllegalAccessException -如果这
Field对象执行java语言访问控制及相关领域是无法访问或最终。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或如果展开转换失败。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
set(java.lang.Object, java.lang.Object)
public void setByte(Object obj, byte b) throws IllegalArgumentException, IllegalAccessException
byte。这种方法相当于
set(obj, bObj),哪里
bObj是
Byte对象和
bObj.byteValue() == b。
obj的字段应该被修改的对象
b为
obj改性领域的新价值
IllegalAccessException -如果这
Field对象执行java语言访问控制及相关领域是无法访问或最终。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或如果展开转换失败。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
set(java.lang.Object, java.lang.Object)
public void setChar(Object obj, char c) throws IllegalArgumentException, IllegalAccessException
char。这种方法相当于
set(obj, cObj),哪里
cObj是
Character对象和
cObj.charValue() == c。
obj的字段应该被修改的对象
c为
obj改性领域的新价值
IllegalAccessException -如果这
Field对象执行java语言访问控制及相关领域是无法访问或最终。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或如果展开转换失败。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
set(java.lang.Object, java.lang.Object)
public void setShort(Object obj, short s) throws IllegalArgumentException, IllegalAccessException
short。这种方法相当于
set(obj, sObj),哪里
sObj是
Short对象和
sObj.shortValue() == s。
obj的字段应该被修改的对象
s为
obj改性领域的新价值
IllegalAccessException -如果这
Field对象执行java语言访问控制及相关领域是无法访问或最终。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或如果展开转换失败。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
set(java.lang.Object, java.lang.Object)
public void setInt(Object obj, int i) throws IllegalArgumentException, IllegalAccessException
int。这种方法相当于
set(obj, iObj),哪里
iObj是
Integer对象和
iObj.intValue() == i。
obj的字段应该被修改的对象
i为
obj改性领域的新价值
IllegalAccessException -如果这
Field对象执行java语言访问控制及相关领域是无法访问或最终。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或如果展开转换失败。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
set(java.lang.Object, java.lang.Object)
public void setLong(Object obj, long l) throws IllegalArgumentException, IllegalAccessException
long。这种方法相当于
set(obj, lObj),哪里
lObj是
Long对象和
lObj.longValue() == l。
obj的字段应该被修改的对象
l为
obj改性领域的新价值
IllegalAccessException -如果这
Field对象执行java语言访问控制及相关领域是无法访问或最终。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或如果展开转换失败。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
set(java.lang.Object, java.lang.Object)
public void setFloat(Object obj, float f) throws IllegalArgumentException, IllegalAccessException
float。这种方法相当于
set(obj, fObj),哪里
fObj是
Float对象和
fObj.floatValue() == f。
obj的字段应该被修改的对象
f为
obj改性领域的新价值
IllegalAccessException -如果这
Field对象执行java语言访问控制及相关领域是无法访问或最终。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或如果展开转换失败。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
set(java.lang.Object, java.lang.Object)
public void setDouble(Object obj, double d) throws IllegalArgumentException, IllegalAccessException
double。这种方法相当于
set(obj, dObj),哪里
dObj是
Double对象和
dObj.doubleValue() == d。
obj的字段应该被修改的对象
d为
obj改性领域的新价值
IllegalAccessException -如果这
Field对象执行java语言访问控制及相关领域是无法访问或最终。
IllegalArgumentException -如果指定的对象不是一个实例的类或接口声明的潜在领域(或子类或实现方法),或如果展开转换失败。
NullPointerException -如果指定对象为空的字段是一个实例字段。
ExceptionInInitializerError -如果该方法激发的初始化失败。
set(java.lang.Object, java.lang.Object)
public <T extends Annotation> T getAnnotation(类<T> annotationClass)
AnnotatedElement
getAnnotation 接口
AnnotatedElement
getAnnotation 方法重写,继承类
AccessibleObject
T -查询并返回如果目前的标注类型
annotationClass -对应的注释类型的类对象
NullPointerException如果注释类是无效的
public <T extends Annotation> T[] getAnnotationsByType(类<T> annotationClass)
AnnotatedElement.getAnnotation(Class)之间的区别是,该方法检测如果它的参数是一个可重复的注释类型(年9.6),如果是这样的话,试图找到一个或更多的注释,通过“浏览”式容器标注。此方法的调用方可以自由修改返回的数组;它将对返回给其他调用方的数组没有影响。
getAnnotationsByType 接口
AnnotatedElement
getAnnotationsByType 方法重写,继承类
AccessibleObject
T -查询并返回如果目前的标注类型
annotationClass -对应的注释类型的类对象
NullPointerException如果注释类是无效的
public Annotation[] getDeclaredAnnotations()
getDeclaredAnnotations 接口
AnnotatedElement
getDeclaredAnnotations 方法重写,继承类
AccessibleObject
public AnnotatedType getAnnotatedType()
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.