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, setAccessible
public 类<?> 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.