关于Field反射的简单理解
今天在苏州,没事闲着写下自己的一份博客,自己在看代码的时候遇到问题就喜欢总结,希望有一天能成为像郭大神鸿洋这样的大神!
进入今天的正题
1.怎么通过反射获取类的属性
a)Class.getDeclaredField(String name);
返回一个 Field
对象,该对象反映此 Class
对象所表示的类或接口的指定已声明字段。
比如说student中的name这个字段
b)Class.getDeclaredFields();
返回
Field
对象的一个数组,这些对象反映此 Class
对象所表示的类或接口所声明的所有字段
这个返回的就是字段的数组也就是把所有的字段都收集起来
Field [] prFields4=stu.getClass().getDeclaredFields();
for(Field field:prFields4)
{
System.out.println(field);
System.out.println(field.equals(property1));
//私有变量必须先设置Accessible为true
field.setAccessible(true);
//获取用get类方法。
System.out.println(field.get(stu));
}
//设置用set类方法 可以为该字段的属性设置值
property3.set(stu, "名字被我改了,哈哈");
Text a = new Text();
Field field = null;
field = a.getClass().getDeclaredField("x");
System.out.println("xiugaiqiandezhi----------------"+ field);
打印出来的是一个地址private java.lang.String Text.x
field.set((Object) a, "8");
System.out.println("xiugaiqiandezhi----------------"+ field.get(a));
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库