java.lang.reflect
Class Field
- AnnotatedElement, Member
The Field class represents a member variable of a class. It also allows
dynamic access to a member, via reflection. This works for both
static and instance fields. Operations on Field objects know how to
do widening conversions, but throw
IllegalArgumentException
if
a narrowing conversion would be necessary. You can query for information
on this Field regardless of location, but get and set access may be limited
by Java language access controls. If you can't do it in the compiler, you
can't normally do it here either.
Note: This class returns and accepts types as Classes, even
primitive types; there are Class types defined that represent each
different primitive type. They are
java.lang.Boolean.TYPE,
java.lang.Byte.TYPE,
, also available as
boolean.class,
byte.class
, etc. These are not to be confused with the
classes
java.lang.Boolean, java.lang.Byte
, etc., which are
real classes.
Also note that this is not a serializable class. It is entirely feasible
to make it serializable using the Externalizable interface, but this is
on Sun, not me.
boolean | equals(Object o) - Compare two objects to see if they are semantically equivalent.
|
Object | get(Object o) - Get the value of this Field.
|
boolean | getBoolean(Object o) - Get the value of this boolean Field.
|
byte | getByte(Object o) - Get the value of this byte Field.
|
char | getChar(Object o) - Get the value of this Field as a char.
|
Class> | getDeclaringClass() - Gets the class that declared this field, or the class where this field
is a non-inherited member.
|
double | getDouble(Object o) - Get the value of this Field as a double.
|
float | getFloat(Object o) - Get the value of this Field as a float.
|
Type | getGenericType() - Return the generic type of the field.
|
int | getInt(Object o) - Get the value of this Field as an int.
|
long | getLong(Object o) - Get the value of this Field as a long.
|
int | getModifiers() - Gets the modifiers this field uses.
|
String | getName() - Gets the name of this field.
|
short | getShort(Object o) - Get the value of this Field as a short.
|
Class> | getType() - Gets the type of this field.
|
int | hashCode() - Get the hash code for the Field.
|
boolean | isEnumConstant() - Return true if this field represents an enum constant,
false otherwise.
|
boolean | isSynthetic() - Return true if this field is synthetic, false otherwise.
|
void | set(Object o, Object value) - Set the value of this Field.
|
void | setBoolean(Object o, boolean value) - Set this boolean Field.
|
void | setByte(Object o, byte value) - Set this byte Field.
|
void | setChar(Object o, char value) - Set this char Field.
|
void | setDouble(Object o, double value) - Set this double Field.
|
void | setFloat(Object o, float value) - Set this float Field.
|
void | setInt(Object o, int value) - Set this int Field.
|
void | setLong(Object o, long value) - Set this long Field.
|
void | setShort(Object o, short value) - Set this short Field.
|
String | toGenericString()
|
String | toString() - Get a String representation of the Field.
|
clone , equals , extends Object> getClass , finalize , hashCode , notify , notifyAll , toString , wait , wait , wait |
equals
public boolean equals(Object o)
Compare two objects to see if they are semantically equivalent.
Two Fields are semantically equivalent if they have the same declaring
class, name, and type. Since you can't creat a Field except through
the VM, this is just the == relation.
- equals in interface Object
o
- the object to compare to
true
if they are equal; false
if not
get
public Object get(Object o)
throws IllegalAccessException
Get the value of this Field. If it is primitive, it will be wrapped
in the appropriate wrapper type (boolean = java.lang.Boolean).
If the field is static,
o
will be ignored. Otherwise, if
o
is null, you get a
NullPointerException
,
and if it is incompatible with the declaring class of the field, you
get an
IllegalArgumentException
.
Next, if this Field enforces access control, your runtime context is
evaluated, and you may have an
IllegalAccessException
if
you could not access this field in similar compiled code. If the field
is static, and its class is uninitialized, you trigger class
initialization, which may end in a
ExceptionInInitializerError
.
Finally, the field is accessed, and primitives are wrapped (but not
necessarily in new objects). This method accesses the field of the
declaring class, even if the instance passed in belongs to a subclass
which declares another field to hide this one.
o
- the object to get the value of this Field from
getBoolean
public boolean getBoolean(Object o)
throws IllegalAccessException
Get the value of this boolean Field. If the field is static,
o
will be ignored.
o
- the object to get the value of this Field from
getByte
public byte getByte(Object o)
throws IllegalAccessException
Get the value of this byte Field. If the field is static,
o
will be ignored.
o
- the object to get the value of this Field from
getDeclaringClass
public Class> getDeclaringClass()
Gets the class that declared this field, or the class where this field
is a non-inherited member.
- getDeclaringClass in interface Member
- the class that declared this member
getDouble
public double getDouble(Object o)
throws IllegalAccessException
Get the value of this Field as a double. If the field is static,
o
will be ignored.
o
- the object to get the value of this Field from
getFloat
public float getFloat(Object o)
throws IllegalAccessException
Get the value of this Field as a float. If the field is static,
o
will be ignored.
o
- the object to get the value of this Field from
getGenericType
public Type getGenericType()
Return the generic type of the field. If the field type is not a generic
type, the method returns the same as getType()
.
getInt
public int getInt(Object o)
throws IllegalAccessException
Get the value of this Field as an int. If the field is static,
o
will be ignored.
o
- the object to get the value of this Field from
getLong
public long getLong(Object o)
throws IllegalAccessException
Get the value of this Field as a long. If the field is static,
o
will be ignored.
o
- the object to get the value of this Field from
getModifiers
public int getModifiers()
Gets the modifiers this field uses. Use the Modifier
class to interpret the values. A field can only have a subset of the
following modifiers: public, private, protected, static, final,
transient, and volatile.
- getModifiers in interface Member
- an integer representing the modifiers to this Member
getShort
public short getShort(Object o)
throws IllegalAccessException
Get the value of this Field as a short. If the field is static,
o
will be ignored.
o
- the object to get the value of this Field from
getType
public Class> getType()
Gets the type of this field.
hashCode
public int hashCode()
Get the hash code for the Field. The Field hash code is the hash code
of its name XOR'd with the hash code of its class name.
- hashCode in interface Object
- the hash code for the object.
isEnumConstant
public boolean isEnumConstant()
Return true if this field represents an enum constant,
false otherwise.
set
public void set(Object o,
Object value)
throws IllegalAccessException
Set the value of this Field. If it is a primitive field, the value
will be unwrapped from the passed object (boolean = java.lang.Boolean).
If the field is static,
o
will be ignored. Otherwise, if
o
is null, you get a
NullPointerException
,
and if it is incompatible with the declaring class of the field, you
get an
IllegalArgumentException
.
Next, if this Field enforces access control, your runtime context is
evaluated, and you may have an
IllegalAccessException
if
you could not access this field in similar compiled code. This also
occurs whether or not there is access control if the field is final.
If the field is primitive, and unwrapping your argument fails, you will
get an
IllegalArgumentException
; likewise, this error
happens if
value
cannot be cast to the correct object type.
If the field is static, and its class is uninitialized, you trigger class
initialization, which may end in a
ExceptionInInitializerError
.
Finally, the field is set with the widened value. This method accesses
the field of the declaring class, even if the instance passed in belongs
to a subclass which declares another field to hide this one.
o
- the object to set this Field onvalue
- the value to set this Field to
IllegalAccessException
- if you could not normally access this field
(i.e. it is not public)IllegalArgumentException
- if value
cannot be
converted by a widening conversion to the underlying type of
the Field, or if o
is not an instance of the class
declaring this fieldNullPointerException
- if o
is null and this field
requires an instance
setBoolean(Object,boolean)
, setByte(Object,byte)
, setChar(Object,char)
, setShort(Object,short)
, setInt(Object,int)
, setLong(Object,long)
, setFloat(Object,float)
, setDouble(Object,double)
setBoolean
public void setBoolean(Object o,
boolean value)
throws IllegalAccessException
Set this boolean Field. If the field is static, o
will be
ignored.
o
- the object to set this Field onvalue
- the value to set this Field to
setByte
public void setByte(Object o,
byte value)
throws IllegalAccessException
Set this byte Field. If the field is static, o
will be
ignored.
o
- the object to set this Field onvalue
- the value to set this Field to
setChar
public void setChar(Object o,
char value)
throws IllegalAccessException
Set this char Field. If the field is static, o
will be
ignored.
o
- the object to set this Field onvalue
- the value to set this Field to
setDouble
public void setDouble(Object o,
double value)
throws IllegalAccessException
Set this double Field. If the field is static, o
will be
ignored.
o
- the object to set this Field onvalue
- the value to set this Field to
setFloat
public void setFloat(Object o,
float value)
throws IllegalAccessException
Set this float Field. If the field is static, o
will be
ignored.
o
- the object to set this Field onvalue
- the value to set this Field to
setInt
public void setInt(Object o,
int value)
throws IllegalAccessException
Set this int Field. If the field is static, o
will be
ignored.
o
- the object to set this Field onvalue
- the value to set this Field to
setLong
public void setLong(Object o,
long value)
throws IllegalAccessException
Set this long Field. If the field is static, o
will be
ignored.
o
- the object to set this Field onvalue
- the value to set this Field to
setShort
public void setShort(Object o,
short value)
throws IllegalAccessException
Set this short Field. If the field is static, o
will be
ignored.
o
- the object to set this Field onvalue
- the value to set this Field to
toString
public String toString()
Get a String representation of the Field. A Field's String
representation is "<modifiers> <type>
<class>.<fieldname>".
Example:
public transient boolean gnu.parse.Parser.parseComplete
- toString in interface Object
- the String representation of the Field
java.lang.reflect.Field - reflection of Java fields
Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
This file is part of GNU Classpath.
GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with GNU Classpath; see the file COPYING. If not, write to the
Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301 USA.
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.
As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version.