反射_获取字节码Class对象的三种方式

获取Class对象的方式:

    Class.from(“全类名”):将字节码文件加载内存,返回Class对象

    类名.Class:通过类名的属性Class获取

    对象.GetClass:getClass()方法在Object类中定义着

结论:

  同提一个字节码文件(*.Class)在一次程序过程中,只会被加载一次,不论哪一种方式获取的class对象都是同一个

 

代码:

  Class.forName("全类名")

  

 Class aClass = Class.forName("Itc.fanshe.Person");
        System.out.println(aClass);
类名.Class
Class personClass = Person.class;
        System.out.println(personClass);
对象.getClass
Person person = new Person();
        Class aClass1 = person.getClass();
        System.out.println(aClass1);
比较三个对象

 System.out.println(aClass == personClass);
        System.out.println(aClass == aClass1);

        Class studentClass = Student.class;
        System.out.println(studentClass == aClass);










反射_Class对象功能概述
Class对象功能:
  获取功能:
    获取成员变量    

Field[]getFields()     
Field getField(string name)     
Field[] getDeclaredFields()   
Field getDeclaredField(string name)

      获取构造方法

constructor<?>[] getconstructors()

constructor<T> getconstructor(类<?>... parameterTypes)

constructor<T> getDeclaredconstructor(类<?>... parameterTypes)

constructor<?>[]getDeclaredconstructors()

     获取成员方法

Method[] getMethods()
Method getMethod(string name,类<?>... parameterTypes)

     获取类名  

String getName();




posted on 2022-07-22 10:37  淤泥不染  阅读(37)  评论(0)    收藏  举报