public static void main(String[] args) throws Exception {
// 获得Class
        Class<?> cls = Class.forName(args[0]);
// 通过Class获得所对应对象的方法
        Method[] methods = cls.getMethods();
// 输出每个方法名
for (Method method : methods) {
            System.out.println(method);
        }
    }

传入java.lang.String可列出该类的所有方法名、及其限制符、返回类型及抛出的异常。这个程序使用Class类forName方法载入指定的类,然后调用getMethods方法返回指定类的方法列表。java.lang.reflect.Method用来表述某个类中的单一方法。

使用java的反射机制,一般需要遵循三步:

    1. 获得你想操作类的Class对象
    2. 通过第一步获得的Class对象去取得操作类的方法或是属性名
    3. 操作第二步取得的方法或是属性

Java运行的时候,某个类无论生成多少个对象,他们都会对应同一个Class对象,它表示正在运行程序中的类和接口。如何取得操作类的Class对象,常用的有三种方式:

    1. 调用Class的静态方法forName,如上例;
    2. 使用类的.class语法,如:Class<?> cls = String.class;
    3. 调用对象的getClass方法,如:String str = "abc";Class<?> cls = str .getClass();