反射之方法调用

1.通过反射 调取属性 并赋值然后调用

         ①先获取class类对象(反射的源头);

         ②调用newInstance方法;创建一个实体类对象(因为属性是一个确切的对象拥有的,除非是静态属性)

         ③调用getDeclareField方法,后面的参数就是具体的属性名;

      !记得设④用获取的属性,调用setAccessible方法,确保属性可访问(如果权限不够就会报错)

         ⑤调用set方法,第一个属性是需要赋值的对象,第二个属性是需要赋的具体值;

         ⑥调用get方法,参数是需要从哪个对象中调出此属性;

 

2.通过反射 调取方法

 

         ①还是先获取class类对象(反射的源头);
         ②调用newInstance方法;创建一个实体类对象(因为方法也是一个确切的对象拥有的,除非是静态方法)

         ③class对象,调用getDeclareMethod后面的 第一个参数是:方法名字; 其它参数是:参数列表中参数的类型,记得转化为class类;

         !④获取到方法之后还是记得调用setAccessible方法,把方法设置为可访问的(防止权限不够报错)

        ⑤获取的方法调用invoke 第一个参数:调用方法的对象;其它参数:就是为方法的参数赋值;

        ⑥调用invoke后会有返回值,返回值就是调用对象中方法的返回值,如果没有,返回值就是null;

 

3.如何  调用静态方法

 

   ①老规矩还是先获取class类对象(之前说过反射可以加上泛型,不加默认object类型);

   ②class对象,调用getDeclareMethod方法,填上方法名和参数列表类型;

   ③!!!还是调用setAccessible方法设置保证可访问;

   ④获取到的方法调用invoke,后面填掉用对象的位置时就可以填null(因为静态方法在加载类的时候就加载了)或则填friend.class(意思大概就是和平时类名.静态方法差不读多)

 

posted @   天庭保安猪八戒  阅读(124)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!
点击右上角即可分享
微信分享提示