java放射常用方法

关于java程序初始化运行过程

一个.java的文件经过javac命令编译成功后,得到一个.class的文件

当我们执行了初始化操作(有可能是new、有可能是子类初始化 父类也一同被初始化、也有可能是反射…等),会将.class文件通过类加载器装载到jvm

.class文件加载器加载到jvm中,又分了好几个步骤,其中包括 加载、连接和初始化

其中在加载的时候,会在Java堆中创建一个java.lang.Class类的对象,这个Class对象代表着类相关的信息(也就是说生成了一个class镜像)

在此Class对象(镜像)中,包含了类中所有的方法


获取class对象

Student stu = new Student();//首先实例化一个Student对象

1.通过实例化对象获得Class对象

Class stuClass = stu.getClass();//此句是在有类进行实例化然后进行获取

2.直接通过类名进行Class对象获取(用于已经在编译时知道了具体的类

Class stuClass = Student.class;//直接跳过了实例化的对象名而采取类名进行获取

3.直接通过对象全名字符串进行Class对象获取(用于动态的获取Class对象

testlaasss stClass = Class.forName("test.student");//直接通过了类所在路径(例如此处是package test 中的 Student 类)

关于一些反射访问的方法

当你在通过反射得到了stuClass之后

stuClass.getPackage();//获取类所在包名
stuClass.getNAme();//获取该类的名字以及名字
stuClass.getInterface();//实现该类下的相关未实现接口
stuClass.getMethods();//获取所有权为public的方法
stuClass.getDeclaredMethods();//获取该对象下所有的方法
stuClass.getFields()//获取所有权为public的成员变量
stuClass.getDeclareFileds();//获取当前对象的所有成员变量
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值