Mega Code Archive

 
Categories / Java Tutorial / Reflection
 

Reflect All

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());     }   } }