898.md 2.1 KB
Newer Older
W
init  
wizardforcel 已提交
1 2 3 4
# 字段

> 原文: [https://docs.oracle.com/javase/tutorial/reflect/member/field.html](https://docs.oracle.com/javase/tutorial/reflect/member/field.html)

W
wizardforcel 已提交
5
*字段*是具有关联值的类,接口或枚举。 [`java.lang.reflect.Field`](https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html) 类中的方法可以检索有关该字段的信息,例如其名称,类型,修饰符和注释。 ([](../class/index.html)课程中的[检查类修饰符和类型](../class/classModifiers.html)部分描述了如何检索注释。)还有一些方法可以动态访问和修改字段的值。以下各节介绍了这些任务:
W
init  
wizardforcel 已提交
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

*   [获取字段类型](fieldTypes.html)描述了如何获取字段的声明类型和泛型类型
*   [检索和解析字段修饰符](fieldModifiers.html)显示如何获取字段声明的部分,如`public``transient`
*   [获取和设置字段值](fieldValues.html)说明了如何访问字段值
*   [故障排除](fieldTrouble.html)描述了一些可能导致混淆的常见编码错误

在编写类浏览器等应用程序时,找出属于特定类的字段可能很有用。通过调用 [`Class.getFields()`](https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getFields--) 来识别类的字段。 [`getFields()`](https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html#getFields--) 方法返回 [`Field`](https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html) 对象的数组,每个可访问的公共字段包含一个对象。

如果公共字段是以下任何一个的成员,则可以访问该字段:

*   这个班
*   这个类的超类
*   这个类实现的接口
*   从此类实现的接口扩展的接口

字段可以是类(实例)字段,例如 [`java.io.Reader.lock`](https://docs.oracle.com/javase/8/docs/api/java/io/Reader.html#lock) ,静态字段,例如 [`java.lang.Integer.MAX_VALUE`](https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html#MAX_VALUE) ,或枚举常量,例如 [`java.lang.Thread.State.WAITING`](https://docs.oracle.com/javase/8/docs/api/java/lang/Thread.State.html#WAITING)