# 字段

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

_ 字段 _ 是具有关联值的类，接口或枚举。 [`java.lang.reflect.Field`](https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Field.html) 类中的方法可以检索有关该字段的信息，例如其名称，类型，修饰符和注释。 （[类](../class/index.html)课程中的[检查类修饰符和类型](../class/classModifiers.html)部分描述了如何检索注释。）还有一些方法可以动态访问和修改字段的值。以下各节介绍了这些任务：

*   [获取字段类型](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) 。