ReflectApp.java Source code

Java tutorial

Introduction

Here is the source code for ReflectApp.java

Source

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