public final class Field extends AccessibleObjectimplements Member
Field provides information about, and dynamic access to, a single field of a class or an interface. The reflected field may be a class (static) field or an instance field.
A Field permits widening conversions to occur during a get or set access operation, but throws an IllegalArgumentException if a narrowing conversion would occur.
| Modifier and Type | Method and Description |
|---|---|
boolean |
equals(Object
Compares this
Field against the specified object.
|
Object |
get(Object
Returns the value of the field represented by this
Field, on the specified object.
|
AnnotatedType |
getAnnotatedType()
Returns an AnnotatedType object that represents the use of a type to specify the declared type of the field represented by this Field.
|
<T extends Annotation |
getAnnotation(Class
Returns this element's annotation for the specified type if such an annotation is
present, else null.
|
<T extends Annotation |
getAnnotationsByType(Class
Returns annotations that are
associated with this element.
|
boolean |
getBoolean(Object
Gets the value of a static or instance
boolean field.
|
byte |
getByte(Object
Gets the value of a static or instance
byte field.
|
char |
getChar(Object
Gets the value of a static or instance field of type
char or of another primitive type convertible to type
char via a widening conversion.
|
Annotation |
getDeclaredAnnotations()
Returns annotations that are
directly present on this element.
|
Class |
getDeclaringClass()
Returns the
Class object representing the class or interface that declares the field represented by this
Field object.
|
double |
getDouble(Object
Gets the value of a static or instance field of type
double or of another primitive type convertible to type
double via a widening conversion.
|
float |
getFloat(Object
Gets the value of a static or instance field of type
float or of another primitive type convertible to type
float via a widening conversion.
|
Type |
getGenericType()
Returns a
Type object that represents the declared type for the field represented by this
Field object.
|
int |
getInt(Object
Gets the value of a static or instance field of type
int or of another primitive type convertible to type
int via a widening conversion.
|
long |
getLong(Object
Gets the value of a static or instance field of type
long or of another primitive type convertible to type
long via a widening conversion.
|
int |
getModifiers()
Returns the Java language modifiers for the field represented by this
Field object, as an integer.
|
String |
getName()
Returns the name of the field represented by this
Field object.
|
short |
getShort(Object
Gets the value of a static or instance field of type
short or of another primitive type convertible to type
short via a widening conversion.
|
Class |
getType()
Returns a
Class object that identifies the declared type for the field represented by this
Field object.
|
int |
hashCode()
Returns a hashcode for this
Field.
|
boolean |
isEnumConstant()
Returns
true if this field represents an element of an enumerated type; returns
false otherwise.
|
boolean |
isSynthetic()
Returns
true if this field is a synthetic field; returns
false otherwise.
|
void |
set(Object
Sets the field represented by this
Field object on the specified object argument to the specified new value.
|
void |
setBoolean(Object
Sets the value of a field as a
boolean on the specified object.
|
void |
setByte(Object
Sets the value of a field as a
byte on the specified object.
|
void |
setChar(Object
Sets the value of a field as a
char on the specified object.
|
void |
setDouble(Object
Sets the value of a field as a
double on the specified object.
|
void |
setFloat(Object
Sets the value of a field as a
float on the specified object.
|
void |
setInt(Object
Sets the value of a field as an
int on the specified object.
|
void |
setLong(Object
Sets the value of a field as a
long on the specified object.
|
void |
setShort(Object
Sets the value of a field as a
short on the specified object.
|
String |
toGenericString()
Returns a string describing this
Field, including its generic type.
|
String |
toString()
Returns a string describing this
Field.
|
getAnnotations, getDeclaredAnnotation, getDeclaredAnnotationsByType, isAccessible, isAnnotationPresent, setAccessible, setAccessiblepublic Class<?> getDeclaringClass()
Class object representing the class or interface that declares the field represented by this
Field object.
getDeclaringClass in interface
Member
public StringgetName()
Field object.
public int getModifiers()
Field object, as an integer. The
Modifier class should be used to decode the modifiers.
getModifiers in interface
Member
Modifier
public boolean isEnumConstant()
true if this field represents an element of an enumerated type; returns
false otherwise.
true if and only if this field represents an element of an enumerated type.
public boolean isSynthetic()
true if this field is a synthetic field; returns
false otherwise.
isSynthetic in interface
Member
public Class<?> getType()
Class object that identifies the declared type for the field represented by this
Field object.
Class object identifying the declared type of the field represented by this object
public TypegetGenericType()
Type object that represents the declared type for the field represented by this
Field object.
If the Type is a parameterized type, the Type object returned must accurately reflect the actual type parameters used in the source code.
If the type of the underlying field is a type variable or a parameterized type, it is created. Otherwise, it is resolved.
Type object that represents the declared type for the field represented by this
Field object
GenericSignatureFormatError - if the generic field signature does not conform to the format specified in
The Java™ Virtual Machine Specification
TypeNotPresentException - if the generic type signature of the underlying field refers to a non-existent type declaration
MalformedParameterizedTypeException - if the generic signature of the underlying field refers to a parameterized type that cannot be instantiated for any reason
public boolean equals(Objectobj)
Field against the specified object. Returns true if the objects are the same. Two
Field objects are the same if they were declared by the same class and have the same name and type.
equals in class
Object
obj - the reference object with which to compare.
true if this object is the same as the obj argument;
false otherwise.
Object.hashCode() ,
HashMap
public int hashCode()
Field. This is computed as the exclusive-or of the hashcodes for the underlying field's declaring class name and its name.
hashCode in class
Object
Object.equals(java.lang.Object) ,
System.identityHashCode(java.lang.Object)
public StringtoString()
Field. The format is the access modifiers for the field, if any, followed by the field type, followed by a space, followed by the fully-qualified name of the class declaring the field, followed by a period, followed by the name of the field. For example:
public static final int java.lang.Thread.MIN_PRIORITY
private int java.io.FileDescriptor.fd
The modifiers are placed in canonical order as specified by "The Java Language Specification". This is public, protected or private first, and then other modifiers in the following order: static, final, transient, volatile.
public StringtoGenericString()
Field, including its generic type. The format is the access modifiers for the field, if any, followed by the generic field type, followed by a space, followed by the fully-qualified name of the class declaring the field, followed by a period, followed by the name of the field.
The modifiers are placed in canonical order as specified by "The Java Language Specification". This is public, protected or private first, and then other modifiers in the following order: static, final, transient, volatile.
Field, including its generic type
public Objectget(Object obj) throws IllegalArgumentException , IllegalAccessException
Field, on the specified object. The value is automatically wrapped in an object if it has a primitive type.
The underlying field's value is obtained as follows:
If the underlying field is a static field, the obj argument is ignored; it may be null.
Otherwise, the underlying field is an instance field. If the specified obj argument is null, the method throws a NullPointerException. If the specified object is not an instance of the class or interface declaring the underlying field, the method throws an IllegalArgumentException.
If this Field object is enforcing Java language access control, and the underlying field is inaccessible, the method throws an IllegalAccessException. If the underlying field is static, the class that declared the field is initialized if it has not already been initialized.
Otherwise, the value is retrieved from the underlying instance or static field. If the field has a primitive type, the value is wrapped in an object before being returned, otherwise it is returned as is.
If the field is hidden in the type of obj, the field's value is obtained according to the preceding rules.
obj - object from which the represented field's value is to be extracted
obj; primitive values are wrapped in an appropriate object before being returned
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is inaccessible.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof).
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
public boolean getBoolean(Objectobj) throws IllegalArgumentException , IllegalAccessException
boolean field.
obj - the object to extract the
boolean value from
boolean field
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is inaccessible.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if the field value cannot be converted to the type
boolean by a widening conversion.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
get(java.lang.Object)
public byte getByte(Objectobj) throws IllegalArgumentException , IllegalAccessException
byte field.
obj - the object to extract the
byte value from
byte field
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is inaccessible.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if the field value cannot be converted to the type
byte by a widening conversion.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
get(java.lang.Object)
public char getChar(Objectobj) throws IllegalArgumentException , IllegalAccessException
char or of another primitive type convertible to type
char via a widening conversion.
obj - the object to extract the
char value from
char
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is inaccessible.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if the field value cannot be converted to the type
char by a widening conversion.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
get(java.lang.Object)
public short getShort(Objectobj) throws IllegalArgumentException , IllegalAccessException
short or of another primitive type convertible to type
short via a widening conversion.
obj - the object to extract the
short value from
short
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is inaccessible.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if the field value cannot be converted to the type
short by a widening conversion.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
get(java.lang.Object)
public int getInt(Objectobj) throws IllegalArgumentException , IllegalAccessException
int or of another primitive type convertible to type
int via a widening conversion.
obj - the object to extract the
int value from
int
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is inaccessible.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if the field value cannot be converted to the type
int by a widening conversion.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
get(java.lang.Object)
public long getLong(Objectobj) throws IllegalArgumentException , IllegalAccessException
long or of another primitive type convertible to type
long via a widening conversion.
obj - the object to extract the
long value from
long
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is inaccessible.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if the field value cannot be converted to the type
long by a widening conversion.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
get(java.lang.Object)
public float getFloat(Objectobj) throws IllegalArgumentException , IllegalAccessException
float or of another primitive type convertible to type
float via a widening conversion.
obj - the object to extract the
float value from
float
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is inaccessible.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if the field value cannot be converted to the type
float by a widening conversion.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
get(java.lang.Object)
public double getDouble(Objectobj) throws IllegalArgumentException , IllegalAccessException
double or of another primitive type convertible to type
double via a widening conversion.
obj - the object to extract the
double value from
double
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is inaccessible.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if the field value cannot be converted to the type
double by a widening conversion.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
get(java.lang.Object)
public void set(Objectobj, Object value) throws IllegalArgumentException , IllegalAccessException
Field object on the specified object argument to the specified new value. The new value is automatically unwrapped if the underlying field has a primitive type.
The operation proceeds as follows:
If the underlying field is static, the obj argument is ignored; it may be null.
Otherwise the underlying field is an instance field. If the specified object argument is null, the method throws a NullPointerException. If the specified object argument is not an instance of the class or interface declaring the underlying field, the method throws an IllegalArgumentException.
If this Field object is enforcing Java language access control, and the underlying field is inaccessible, the method throws an IllegalAccessException.
If the underlying field is final, the method throws an IllegalAccessException unless setAccessible(true) has succeeded for this Field object and the field is non-static. Setting a final field in this way is meaningful only during deserialization or reconstruction of instances of classes with blank final fields, before they are made available for access by other parts of a program. Use in any other context may have unpredictable effects, including cases in which other parts of a program continue to use the original value of this field.
If the underlying field is of a primitive type, an unwrapping conversion is attempted to convert the new value to a value of a primitive type. If this attempt fails, the method throws an IllegalArgumentException.
If, after possible unwrapping, the new value cannot be converted to the type of the underlying field by an identity or widening conversion, the method throws an IllegalArgumentException.
If the underlying field is static, the class that declared the field is initialized if it has not already been initialized.
The field is set to the possibly unwrapped and widened new value.
If the field is hidden in the type of obj, the field's value is set according to the preceding rules.
obj - the object whose field should be modified
value - the new value for the field of
obj being modified
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is either inaccessible or final.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if an unwrapping conversion fails.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
public void setBoolean(Objectobj, boolean z) throws IllegalArgumentException , IllegalAccessException
boolean on the specified object. This method is equivalent to
set(obj, zObj), where
zObj is a
Boolean object and
zObj.booleanValue() == z.
obj - the object whose field should be modified
z - the new value for the field of
obj being modified
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is either inaccessible or final.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if an unwrapping conversion fails.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
set(java.lang.Object, java.lang.Object)
public void setByte(Objectobj, byte b) throws IllegalArgumentException , IllegalAccessException
byte on the specified object. This method is equivalent to
set(obj, bObj), where
bObj is a
Byte object and
bObj.byteValue() == b.
obj - the object whose field should be modified
b - the new value for the field of
obj being modified
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is either inaccessible or final.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if an unwrapping conversion fails.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
set(java.lang.Object, java.lang.Object)
public void setChar(Objectobj, char c) throws IllegalArgumentException , IllegalAccessException
char on the specified object. This method is equivalent to
set(obj, cObj), where
cObj is a
Character object and
cObj.charValue() == c.
obj - the object whose field should be modified
c - the new value for the field of
obj being modified
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is either inaccessible or final.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if an unwrapping conversion fails.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
set(java.lang.Object, java.lang.Object)
public void setShort(Objectobj, short s) throws IllegalArgumentException , IllegalAccessException
short on the specified object. This method is equivalent to
set(obj, sObj), where
sObj is a
Short object and
sObj.shortValue() == s.
obj - the object whose field should be modified
s - the new value for the field of
obj being modified
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is either inaccessible or final.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if an unwrapping conversion fails.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
set(java.lang.Object, java.lang.Object)
public void setInt(Objectobj, int i) throws IllegalArgumentException , IllegalAccessException
int on the specified object. This method is equivalent to
set(obj, iObj), where
iObj is a
Integer object and
iObj.intValue() == i.
obj - the object whose field should be modified
i - the new value for the field of
obj being modified
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is either inaccessible or final.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if an unwrapping conversion fails.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
set(java.lang.Object, java.lang.Object)
public void setLong(Objectobj, long l) throws IllegalArgumentException , IllegalAccessException
long on the specified object. This method is equivalent to
set(obj, lObj), where
lObj is a
Long object and
lObj.longValue() == l.
obj - the object whose field should be modified
l - the new value for the field of
obj being modified
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is either inaccessible or final.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if an unwrapping conversion fails.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
set(java.lang.Object, java.lang.Object)
public void setFloat(Objectobj, float f) throws IllegalArgumentException , IllegalAccessException
float on the specified object. This method is equivalent to
set(obj, fObj), where
fObj is a
Float object and
fObj.floatValue() == f.
obj - the object whose field should be modified
f - the new value for the field of
obj being modified
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is either inaccessible or final.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if an unwrapping conversion fails.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
set(java.lang.Object, java.lang.Object)
public void setDouble(Objectobj, double d) throws IllegalArgumentException , IllegalAccessException
double on the specified object. This method is equivalent to
set(obj, dObj), where
dObj is a
Double object and
dObj.doubleValue() == d.
obj - the object whose field should be modified
d - the new value for the field of
obj being modified
IllegalAccessException - if this
Field object is enforcing Java language access control and the underlying field is either inaccessible or final.
IllegalArgumentException - if the specified object is not an instance of the class or interface declaring the underlying field (or a subclass or implementor thereof), or if an unwrapping conversion fails.
NullPointerException - if the specified object is null and the field is an instance field.
ExceptionInInitializerError - if the initialization provoked by this method fails.
set(java.lang.Object, java.lang.Object)
public <T extends Annotation> T getAnnotation(Class <T> annotationClass)
AnnotatedElement
getAnnotation in interface
AnnotatedElement
getAnnotation in class
AccessibleObject
T - the type of the annotation to query for and return if present
annotationClass - the Class object corresponding to the annotation type
NullPointerException - if the given annotation class is null
public <T extends Annotation> T[] getAnnotationsByType(Class <T> annotationClass)
AnnotatedElement.getAnnotation(Class) is that this method detects if its argument is a
repeatable annotation type (JLS 9.6), and if so, attempts to find one or more annotations of that type by "looking through" a container annotation. The caller of this method is free to modify the returned array; it will have no effect on the arrays returned to other callers.
getAnnotationsByType in interface
AnnotatedElement
getAnnotationsByType in class
AccessibleObject
T - the type of the annotation to query for and return if present
annotationClass - the Class object corresponding to the annotation type
NullPointerException - if the given annotation class is null
public Annotation[] getDeclaredAnnotations()
getDeclaredAnnotations in interface
AnnotatedElement
getDeclaredAnnotations in class
AccessibleObject
public AnnotatedTypegetAnnotatedType()