手抄报 安全手抄报 手抄报内容 手抄报图片 英语手抄报 清明节手抄报 节约用水手抄报

Java反射机制快速学习上手二(调用类的参数)

时间:2024-11-01 06:19:36

1、首先我要先讲解一下为什么反射调用class的参数要比反射调用类的函数要更加复杂,之前已经说过,一个恽贴淑溪类名在内存中只能有一个class的位置进行存放,如果要加载新的,必须要从外存中读取这个class。而我们都知道,对于不同的实体类,method方法都是一模一样的,所以调用方法直接调用就可以了,但是参数很明显不同的实体类是不一样的,所以这就需要不一样的方法来获取不同的实体类的参数,包括还有public、protected以及private的参数,也有区别。

Java反射机制快速学习上手二(调用类的参数)

2、下图为调用类内参数使用的答牧驼揎反射机制的函数,这里来一一介绍下它们的用法:1.publicConstructor[]getConstructors():这个是获取所有类的public构造方法,注四歹吭毳意是所有类、public、构造方法。2.publicConstructor[]getDeclaredConstructors():这个与上面的区别是这个没有public的设定,只要是构造方法,无论是不是public的,即便他是private还是protected的构造方法,这个函数也能获取。3.publicConstructorgetConstructor(Class...parameterTypes)与第一个的不同是这个是获取固定一个类的public构造方法。4.publicConstructorgetDeclaredConstructor(Class...parameterTypes)与第二个不同,这个只能获取一个固定的类。

Java反射机制快速学习上手二(调用类的参数)

3、那我们来举一个例子吧,还是以Student为例,这个里面使用了上述四个方法,可以分别得到相应的构造函数,我们就可以利用这个函数进行构造类了。调用构造的方法是Constructor-->newInstance(Object...initargs) 这个方法。

Java反射机制快速学习上手二(调用类的参数)
Java反射机制快速学习上手二(调用类的参数)

4、说了构造函数的调用,我们再来看下调用具体参墙绅褡孛数的函数吧:1.Field[]getFields():这邗锒凳审个函数可以获取到所有class中所有的public方法2.Field[]getDeclaredFields():与第一个不同在可以获取所有方法3.publicFieldgetField(StringfieldName):获取某个class的public方法4.publicFieldgetDeclaredField(StringfieldName):获取某个字段(可以是私有的)

Java反射机制快速学习上手二(调用类的参数)

5、而设置字段的值则要通过Field-->publicvoidset(Objectobj,Objectvalue)方法来实现,我们来解释下参数:1.obj:要设置的字段所在的对象;2.value:要为字段设置的值;

6、最后,我们来通过一个实例来尝试实现反射机制吧:这个例子也十分的简单,相信各位可以通过上面的学习迅速理解其中的意思

Java反射机制快速学习上手二(调用类的参数)
Java反射机制快速学习上手二(调用类的参数)
© 手抄报圈