获取类
Class<?> studentClass3 = Class.forName("全限定类名");
System.out.println(studentClass3);
Class<?> studentClass2 = Student.class;
System.out.println(studentClass2);
Student student = new Student();
Class studentClass1 = student.getClass();
System.out.println(studentClass1);
ClassLoader classLoader = ClassDemo01.class.getClassLoader();
Class studentClass4 = classLoader.loadClass("全限定类名");
System.out.println(studentClass4);
常用API
- getName():获得类的完整名字。
- getFields():获得类的public类型的属性。
- getDeclaredFields():获得类的所有属性。包括private声明的和继承类
- getMethods():获得类的public类型的方法。
- getDeclaredMethods():获得类的所有方法。包括private声明的和继承类
- getMethod(String name, Class[] parameterTypes):获得类的特定方法,name参数指定方法的名字,parameterTypes 参数指定方法的参数类型。
- getConstructors():获得类的public类型的构造方法。
- getConstructor(Class[] parameterTypes):获得类的特定构造方法,parameterTypes参数指定构造方法的参数类型。
- newInstance():通过类的不带参数的构造方法创建这个类的一个对象。
- invoke(Object obj,Object… args):obj:调用底层方法的对象;args:用于方法调用的参数;return:使用参数args在obj上调度此对象表示的方法的结果
- setAccessible():设置值为true临时取消权限校验
- getReturnType():获取方法返回值类型