类 java.lang.reflect.Field
java.lang.Object
|
+----java.lang.reflect.Field
- public final class Field
- extends Object
- implements Member
Field 提供相关信息、动态存取、类的单个域或接口。镜像域可以是一个类 (静态的) 域或实例域。
获取或设置操作期间允许 Field 域进行扩展转换,但若发生缩减转换则抛出 IllegalArgumentException 。
- 参见:
- Member, Class, getFields, getField, getDeclaredFields, getDeclaredField
方法索引
- equals(Object)
- 该对域与指定对象作比较。
- get(Object)
- 返回指定对象上该 Field 表示的值。
- getBoolean(Object)
- 以 boolean 类型获取指定对象上的域值。
- getByte(Object)
- 以 byte 类型获取指定对象上的域值。
- getChar(Object)
- 以 char 类型获取指定对象上的域值。
- getDeclaringClass()
- 返回表示类或接口的 Class 对象,此类或接口用于说明该 Field 对象表示的构造子。
- getDouble(Object)
- 以 double 类型获取指定对象上的域值。
- getFloat(Object)
- 以 float 类型获取指定对象上的域值。
- getInt(Object)
- 以 int 类型获取指定对象上的域值。
- getLong(Object)
- 以 long 类型获取指定对象上的的域值。
- getModifiers()
- 以 integer 类型返回该 Field 对象所表示域的 Java 语言修饰词。
- getName()
- 返回该 Field 对象表示的域名。
- getShort(Object)
- 以 short 类型获取指定对象上的域值。
- getType()
- 返回一个 Class 对象,它标识该 Field 对象所表示域的说明类型。
- hashCode()
- 返回该 Field 的散列码。
- set(Object, Object)
- 将指定对象参数上该 Field 对象表示的域设置为指定新值。
- setBoolean(Object, boolean)
- 以 boolean 类型设置指定对象上的域值。
- setByte(Object, byte)
- 以 byte 类型设置指定对象上的域值。
- setChar(Object, char)
- 以 char 类型设置指定对象上的域值。
- setDouble(Object, double)
- 以 double 类型设置指定对象上的域值。
- setFloat(Object, float)
- 以 float 类型设置指定对象上的域值。
- setInt(Object, int)
- 以 int 类型设置指定对象上的域值。
- setLong(Object, long)
- 以 long 类型设置指定对象上的域值。
- setShort(Object, short)
- 以 short 类型设置指定对象上的域值。
- toString()
- 返回描述该 Field 的字符串。
方法
getDeclaringClass
public Class getDeclaringClass()
- 返回表示类或接口的 Class 对象,此类或接口用于说明该 Field 对象表示的域。
getName
public String getName()
- 返回该 Field 对象所表示域的名字。
getModifiers
public native int getModifiers()
- 以 integer 类型返回该 Field 对象所表示域的 Java 语言修饰词。使用该 Modifier 类为修饰词译码。
- 参见:
- Modifier
getType
public Class getType()
- 返回 Class 对象,它标识该 Filed 对象所表示域的说明类型。
equals
public boolean equals(Object obj)
- 该对域与指定对象作比较。若相同则为 true 。若两个 Field 用相同类来说明且具有相同的名字和类型则相同。
- 覆盖:
- 类 Object 中的 equals
hashCode
public int hashCode()
- 返回该 Field 的散列码。这是作为基本域名及其声明类名的散列码来进行异或计算的。
- 覆盖:
- 类 Object 中的 hashCode
toString
public String toString()
- 返回描述该 Field 的字符串。若字符串后附带域类型、空格、声明域类的完整路径名、周期、域名,则格式是该域的访问修饰词。例如:
public static final int java.lang.Thread.MIN_PRIORITY
private int java.io.FileDescriptor.fd
修饰词按“Java 语言规范”指定的典型顺序放置。首先是
public、protected 或 private , 然后将其它修饰词按下列次序放置:
static、final、transient、volatile 。
- 覆盖:
- 类 Object 中的 toString 。
get
public native Object get(Object obj) throws IllegalArgumentException, IllegalAccessException
- 返回指定对象上该 Field 所表示域的值。若该值有一个原始类型,则自动将其打包于某对象中。
按下列次序获得基本域值:
若基本域是静态域,则忽略对象参数;它可以为 null 。
否则, 基本域是一个实例域。若指定对象参数为 null ,
则该方法抛出 NullPointerException 。若指定对象不是类的实例或不是声明基本域的接口,则该方法抛出 IllegalArgumentException 。
若该 Field 对象使 Java 语言存取控制和基本域不可存取,则该方法抛出 IllegalAccessException 。
否则, 从基本实例或静态域中获取该值。若域有原始类型,则返回前将该值打包于某对象中, 否则以原样返回。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若指定对象不是类实例或声明基本域的接口。
- 抛出:
NullPointerException
- 若指定对象为 null 。
getBoolean
public native boolean getBoolean(Object obj) throws IllegalArgumentException, IllegalAccessException
- 以 boolean 类型获取指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若域值不能被扩展转换转换成返回类型 。
- 参见:
- get
getByte
public native byte getByte(Object obj) throws IllegalArgumentException, IllegalAccessException
- 以 byte 类型获取指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若域值不能被扩展转换转换成返回类型 。
- 参见:
- get
getChar
public native char getChar(Object obj) throws IllegalArgumentException, IllegalAccessException
- 以 char 类型获取指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若域值不能被扩展转换转换成返回类型 。
- 参见:
- get
getShort
public native short getShort(Object obj) throws IllegalArgumentException, IllegalAccessException
- 以 short 类型获取指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若域值不能被扩展转换转换成返回类型 。
- 参见:
- get
getInt
public native int getInt(Object obj) throws IllegalArgumentException, IllegalAccessException
- 以 int 类型获取指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若域值不能被扩展转换转换成返回类型 。
- 参见:
- get
getLong
public native long getLong(Object obj) throws IllegalArgumentException, IllegalAccessException
- 以 long 类型获取指定对象上的的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若域值不能被扩展转换转换成返回类型 。
- 参见:
- get
getFloat
public native float getFloat(Object obj) throws IllegalArgumentException, IllegalAccessException
- 以 float 类型获取指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若域值不能被扩展转换转换成返回类型 。
- 参见:
- get
getDouble
public native double getDouble(Object obj) throws IllegalArgumentException, IllegalAccessException
- 以 double 类型获取指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若域值不能被扩展转换转换成返回类型 。
- 参见:
- get
set
public native void set(Object obj,
Object value) throws IllegalArgumentException, IllegalAccessException
- 将指定对象参数上的该 Field 对象表示的域设置为指定新值。若基本域有原始类型,则自动将该新值解包。
操作处理如下:
若基本域是静态域,则忽略对象参数;它可以为 null 。
否则, 基本域是一个实例域。若指定对象参数为 null ,
则该方法抛出 NullPointerException 。若指定对象不是类实例或声明基本域的接口,则该方法抛出 IllegalArgumentException 。
若该 Field 对象使 Java 语言存取控制和基本域不可存取,则该方法抛出 IllegalAccessException 。
若基本 Field 是最终域,则该方法抛出 IllegalAccessException 。
若基本域是原始类型,则试进行解包转换,将新值转换为原始类型值。若尝试失败,则抛出 IllegalArgumentException 。
进行可能解包之后,若通过标志或扩展转换不能将新值转换成基本域的类型,则该方法 IllegalArgumentException 。
将该域设置为可能的解包和扩展的新值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若指定对象不是类的实例或声明基本域的接口或解包转换失败,则该方法抛出 unwrapping 。
- 抛出:
NullPointerException
- 若指定对象为 null 。
setBoolean
public native void setBoolean(Object obj,
boolean z) throws IllegalArgumentException, IllegalAccessException
- 以 boolean 类型设置指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若指定对象不是类的实例、声明基本域的接口或解包转换失败。
- 参见:
- set
setByte
public native void setByte(Object obj,
byte b) throws IllegalArgumentException, IllegalAccessException
- 以 byte 类型设置指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若指定对象不是类的实例、声明基本域的接口或解包转换失败。
- 参见:
- set
setChar
public native void setChar(Object obj,
char c) throws IllegalArgumentException, IllegalAccessException
- 以 char 类型设置指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若指定对象不是类的实例、声明基本域的接口或解包转换失败。
- 参见:
- set
setShort
public native void setShort(Object obj,
short s) throws IllegalArgumentException, IllegalAccessException
- 以 short 类型设置指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若指定对象不是类的实例、声明基本域的接口或解包转换失败。
- 参见:
- set
setInt
public native void setInt(Object obj,
int i) throws IllegalArgumentException, IllegalAccessException
- 以 int 类型设置指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若指定对象不是类的实例、声明基本域的接口或解包转换失败。
- 参见:
- set
setLong
public native void setLong(Object obj,
long l) throws IllegalArgumentException, IllegalAccessException
- 以 long 类型设置指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若指定对象不是类的实例、声明基本域的接口或解包转换失败。
- 参见:
- set
setFloat
public native void setFloat(Object obj,
float f) throws IllegalArgumentException, IllegalAccessException
- 以 float 类型设置指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若指定对象不是类的实例、声明基本域的接口或解包转换失败。
- 参见:
- set
setDouble
public native void setDouble(Object obj,
double d) throws IllegalArgumentException, IllegalAccessException
- 以 double 类型设置指定对象上的域值。
- 抛出:
IllegalAccessException
- 若基本构造子是不可存取的。
- 抛出:
IllegalArgumentException
- 若指定对象不是类的实例、声明基本域的接口或解包转换失败。
- 参见:
- set

