A field is a class, interface, or enum with an associated value. Methods in the java.lang.reflect.Field class can retrieve information about the field, such as its name, type, modifiers, and annotations. (The section Examining Class Modifiers and Types in the Classes lesson describes how to retrieve annotations.) There are also methods which enable dynamic access and modification of the value of the field. These tasks are covered in the following sections:

When writing an application such as a class browser, it might be useful to find out which fields belong to a particular class. A class's fields are identified by invoking Class.getFields() . The getFields() method returns an array of Field objects containing one object per accessible public field.

A public field is accessible if it is a member of either:

  • this class
  • a superclass of this class
  • an interface implemented by this class
  • an interface extended from an interface implemented by this class

A field may be a class (instance) field, such as , a static field, such as java.lang.Integer.MAX_VALUE , or an enum constant, such as java.lang.Thread.State.WAITING .