Class.isArray
method. Let's take a look at an example. The sample program that follows prints the names of the arrays which are encapsulated in an object. The program performs these steps:
- It retrieves the
Class
object that represents the target object. - It gets the
Field
objects for theClass
object retrieved in the preceding step. - For each
Field
object, the program gets a correspondingClass
object by invoking thegetType
method. - To verify that the
Class
object retrieved in the preceding step represents an array, the program invokes theisArray
method.
The output of the sample program follows. Note that the left bracket indicates that the object is an array.import java.lang.reflect.*;
import java.awt.*;
class SampleArray {
public static void main(String[] args) {
KeyPad target = new KeyPad();
printArrayNames(target);
}
static void printArrayNames(Object target) {
Class targetClass = target.getClass();
Field[] publicFields = targetClass.getFields();
for (int i = 0; i < publicFields.length; i++) {
String fieldName = publicFields[i].getName();
Class typeClass = publicFields[i].getType();
String fieldType = typeClass.getName();
if (typeClass.isArray()) {
System.out.println("Name: " + fieldName +
", Type: " + fieldType);
}
}
}
}
class KeyPad {
public boolean alive;
public Button power;
public Button[] letters;
public int[] codes;
public TextField[] rows;
public boolean[] states;
}
Name: letters, Type: [Ljava.awt.Button;
Name: codes, Type: [I
Name: rows, Type: [Ljava.awt.TextField;
Name: states, Type: [Z
No comments:
Post a Comment