| |
7. 4. 1. 反射所有 |
|
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class ReflectApp {
public static void main(String args[]) {
String parm = args[0];
Class className = void.class;
try {
className = Class.forName(parm);
} catch (ClassNotFoundException ex) {
System.out.println("Not a class or interface.");
System.exit(0);
}
describeClassOrInterface(className, parm);
}
static void describeClassOrInterface(Class className, String name) {
displayModifiers(className.getModifiers());
displayFields(className.getDeclaredFields());
displayMethods(className.getDeclaredMethods());
if (className.isInterface()) {
System.out.println("Interface: " + name);
} else {
System.out.println("Class: " + name);
displayInterfaces(className.getInterfaces());
displayConstructors(className.getDeclaredConstructors());
}
}
static void displayModifiers(int m) {
System.out.println("Modifiers: " + Modifier.toString(m));
}
static void displayInterfaces(Class[] interfaces) {
if (interfaces.length > 0) {
System.out.println("Interfaces: ");
for (int i = 0; i < interfaces.length; ++i)
System.out.println(interfaces[i].getName());
}
}
static void displayFields(Field[] fields) {
if (fields.length > 0) {
System.out.println("Fields: ");
for (int i = 0; i < fields.length; ++i)
System.out.println(fields[i].toString());
}
}
static void displayConstructors(Constructor[] constructors) {
if (constructors.length > 0) {
System.out.println("Constructors: ");
for (int i = 0; i < constructors.length; ++i)
System.out.println(constructors[i].toString());
}
}
static void displayMethods(Method[] methods) {
if (methods.length > 0) {
System.out.println("Methods: ");
for (int i = 0; i < methods.length; ++i)
System.out.println(methods[i].toString());
}
}
}
|
|
|