反射_获取字节码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();
浙公网安备 33010602011771号