Class类的介绍和基本使用方法

一、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()的返回值为一个数组,且该方法的参数是一个可变参数。

可变参数:允许传入长度可变的参数

Class类的介绍和基本使用方法

  • 通过反射获得Student类中的某个构造方法
    Constructor noArgs=clz.getConstructor(null);

  • 通过反射获得三个参数的构造方法,指定对应的参数对应的Class类的对象作为实参
    Constructor inArgs=clz.getConstructor(Integer.class,String.class,String.class);

  • 读取clz对象表示的class文件中的成员方法

  1. clz.getMethods()

只能获得公共方法,包括从父类中继承的方法

例:Method[] methods = clz.getMethods();
for(Method m:methods) {
/ /打印出得到的方法名
System.out.println(“student-method====”+m);
}

  1. clz.getDeclaredMethods()

只能获得本类中的成员方法(public,private,protect.default)

例:Method[] methods2 = clz.getDeclaredMethods();
for(Method m:methods2) {
System.out.println(“student-method2====”+m);
}

上一篇:java.lang.reflect.Constructor.getParameterTypes()方法示例


下一篇:终焉之排列