一、Class类的介绍
Class类的对象表示的是一个,类在内存中的class文件。
Class clz = String.class 表示String在内存中的class文件。
二、Class类的使用
1.获得Class类的对象
- 通过Class clz = Class.forName(“完全限定名”);
获得Class类的对象封装class文件
完全限定名:包名+类名.
-
通过类名获得Class对象,类名.class
-
通过某个类的对象,获得Class文件,String类在内存中的class文件。
2. Class类中提供的方法
-
读取clz对象表示的class文件中的构造方法
反射将类中的构造方法封装为对象,Constructor的对象。
Constructor<?>[] cons = clz.getConstructors();
for(Constructor c:cons) {
System.out.println(“student----”+c);
}
注意:getConstructors()的返回值为一个数组,且该方法的参数是一个可变参数。
可变参数:允许传入长度可变的参数

-
通过反射获得Student类中的某个构造方法
Constructor noArgs=clz.getConstructor(null); -
通过反射获得三个参数的构造方法,指定对应的参数对应的Class类的对象作为实参
Constructor inArgs=clz.getConstructor(Integer.class,String.class,String.class); -
读取clz对象表示的class文件中的成员方法
- clz.getMethods()
只能获得公共方法,包括从父类中继承的方法
例:Method[] methods = clz.getMethods();
for(Method m:methods) {
/ /打印出得到的方法名
System.out.println(“student-method====”+m);
}
- clz.getDeclaredMethods()
只能获得本类中的成员方法(public,private,protect.default)
例:Method[] methods2 = clz.getDeclaredMethods();
for(Method m:methods2) {
System.out.println(“student-method2====”+m);
}
本文详细介绍了Java中的反射机制,重点讲解了Class类的使用,包括如何获取Class对象、通过反射访问类的构造方法和成员方法。通过示例代码展示了getConstructors()和getMethods()等方法的用法,帮助理解Java反射在实际编程中的应用。

1万+

被折叠的 条评论
为什么被折叠?



