一、Class类

Class类是反射的根接口,它的实例表示正在运行的Java应用程序中的类和接口。Class类提供了一系列的方法,用于反射操作,比如获取类的名字,获取类的修饰符,获取类的构造函数,获取类的方法等等。例如,下面的代码演示了如何使用Class类获取类的名称:


public class TestClass{
    public static void main(String[] args){
        Class clazz = TestClass.class;
        String className = clazz.getName();
        System.out.println(className);  //输出:TestClass
    }
}

二、Constructor类

Constructor类表示类的构造函数,它提供了一系列的方法,用于获取构造函数的修饰符,参数类型,参数名称等等。例如,下面的代码演示了如何使用Constructor类获取构造函数的参数类型:


public class TestClass{
    private String name;
    private int age;
    
    public TestClass(String name, int age){
        this.name = name;
        this.age = age;
    }
    
    public static void main(String[] args){
        Class clazz = TestClass.class;
        Constructor[] constructors = clazz.getConstructors();
        for(Constructor constructor : constructors){
            Class[] parameterTypes = constructor.getParameterTypes();
            for(Class parameterType : parameterTypes){
                System.out.println(parameterType.getName());  //输出:java.lang.String和int
            }
        }
    }
}

三、Method类

Method类表示类的方法,它提供了一系列的方法,用于获取方法的修饰符,参数类型,参数名称,返回值类型等等。例如,下面的代码演示了如何使用Method类获取方法的参数类型:


public class TestClass{
    public static void main(String[] args){
        Class clazz = TestClass.class;
        Method[] methods = clazz.getMethods();
        for(Method method : methods){
            Class[] parameterTypes = method.getParameterTypes();
            for(Class parameterType : parameterTypes){
                System.out.println(parameterType.getName());  //输出:java.lang.String[]
            }
        }
    }
}