反射之方法调用
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(意思大概就是和平时类名.静态方法差不读多)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· 因为Apifox不支持离线,我果断选择了Apipost!