The JavaTM Tutorial

| Start of Tutorial > Start of Trail > Start of Lesson | Search Feedback Form

Trail: The Reflection API
Lesson: Working with Arrays

## Retrieving Component Types

> The component type is the type of an array's elements. For example, the component type of the `arrowKeys` array in the following line of code is `Button`:

> >     Button[] arrowKeys = new Button[4];

> The component type of a multidimensional array is an array. In the next line of code, the component type of the array named `matrix` is `int[]`:

> >     int[][] matrix = new int[100][100];

> By invoking the `getComponentType` method against the `Class` object that represents an array, you can retrieve the component type of the array's elements.

> The sample program that follows invokes the `getComponentType` method and prints out the class name of each array's component type.

> >     import java.lang.reflect.*;
> >     import java.awt.*;

> >     class SampleComponent {

> >        public static void main(String[] args) {
> >           int[] ints = new int[2];
> >           Button[]  buttons = new Button[6];
> >           String[][] twoDim = new String[4][5];

> >           printComponentType(ints);
> >           printComponentType(buttons);
> >           printComponentType(twoDim);
> >        }

> >        static void printComponentType(Object array) {
> >           Class arrayClass = array.getClass();
> >           String arrayName = arrayClass.getName();
> >           Class componentClass = arrayClass.getComponentType();
> >           String componentName = componentClass.getName();
> >           System.out.println("Array: " + arrayName +
> >              ", Component: " + componentName);
> >        }
> >     }

> The output of the sample program is:

> >     Array: [I, Component: int
> >     Array: [Ljava.awt.Button;, Component: java.awt.Button
> >     Array: [[Ljava.lang.String;, Component: [Ljava.lang.String;

| Start of Tutorial > Start of Trail > Start of Lesson | Search Feedback Form

Copyright 1995-2001 Sun Microsystems, Inc. All rights reserved.