The JavaTM Tutorial

| Start of Tutorial > Start of Trail | Search

Trail: The Reflection API

## Lesson: Examining Classes

> If you are writing a class browser, you need a way to get information about classes at runtime. For example, you might want to display the names of the class fields, methods, and constructors. Or, you might want to show which interfaces are implemented by a class. To get this information you need to get the `Class` object that reflects the class.

> For each class, the Java Runtime Environment (JRE) maintains an immutable `Class` object that contains information about the class. A `Class` object represents, or reflects, the class. With the reflection API, you can invoke methods on a `Class` object which return `Constructor` , `Method` , and `Field` objects. You can use these objects to get information about the corresponding constructors, methods, and fields defined in the class.

> `Class` objects also represent interfaces. You invoke `Class` methods to find out about an interface's modifiers, methods, and public constants. Not all of the `Class` methods are appropriate when a `Class` object reflects an interface. For example, it doesn't make sense to invoke `getConstructors` when the `Class` object represents an interface. The section Examining Interfaces explains which `Class` methods you may use to get information about interfaces.

### Retrieving Class Objects

> First things first. Before you can find out anything about a class, you must first retrieve its corresponding `Class` object.

### Getting the Class Name

> It's easy to find out the name of a `Class` object. All you have to do is invoke the `getName` method.

### Discovering Class Modifiers

> This section shows you the methods you need to call to find out what modifiers a particular class has.

### Finding Superclasses

> In this section you'll learn how to retrieve all of the `Class` objects for the ancestors of a given class.

### Identifying the Interfaces Implemented by a Class

> If you want to find out what interfaces a class implements, then check out this section.

### Examining Interfaces

> In this section you'll learn how to tell if a `Class` object represents an interface or a class. You'll also get some tips on how to get more information about an interface.

### Identifying Class Fields

> This section shows you how to discover what fields belong to a class, and how to find out more about these fields by accessing `Field` objects.

### Discovering Class Constructors

> This section, which introduces the `Constructor` class, explains how to get information about a class's contructors.

### Obtaining Method Information

> To find out about a class's methods, you need to retrieve the corresponding `Method` objects. This section shows you how to do this.

| Start of Tutorial > Start of Trail | Search