反思的来源:class.so班级非常重要
基于这个人班
1.类加载过程:程序通过javac.exe命令后,将生成一个或多个字节码文件(end),然后我们使用java.exe命令来解释字节代码文件。它等同于加载一个字节代码文件到内存。此过程称为类加载。加载到内存的类,我们调用运行时类,此运行时类,作为类“一切都是对象”的示例。2。换句话说,换句话说,类对应于运行时类。(class clazz = person.class)3。加载到内存时运行,它将在一定时间缓存。在此时间,您可以通过以下四种方式获得此运行时类(需要掌握前三种类型)
以上结果为真
班级加载程序的角色:
前面提到的属性有两种读取文件资源的方法
getfields():获取当前运行时类及其父类的属性作为公共访问权限
getDeclaredFields():获取当前运行时类中声明的所有属性(不包括父类)
字段的对象.getModifiers():获取类中属性的权限修改器,返回值为int.0表示默认值,2表示私有,1表示public。
modifier.tostring(int modifer = field.getModifiers())获取权限修饰符
字段对象.getType():类中属性的数据类型
字段对象.getName:类中属性的变量名称
getMethods():作为公共访问权限获得当前运行时及其父类的方法
getDeclaredMethods():当前运行时类中声明的所有方法(不包括父类)
getAnnotations:当前运行时类的注释及其父类作为公共访问权限
如何调用私人属性无法调用
您可以调用私人属性的方式(使用反射)
仅发布调用私人非静态方法的方式(使用反射)
如何调用私人静态方法(使用反射)
调用构造函数
原始:https://juejin.cn/post/7099476212950499365