反射_Class对象功能概述和反射_Class对象功能_获取Fileld
反射_Class对象功能概述
Class对象功能:
>获取功能:
1.获取成员变量们:
>Field[] getFields(): 获取所有public修饰的成员变量
>Field getField(String name):获取指定名称的public修饰符的成员变量
>Field[] getDeclaredFields():获取所有的成员变量,不考虑修饰符
>Field getDeclaredField(String name):获取所有的指定名称的成员变量,不考虑修饰符
2.获取构造方法们:
>Constructor<?>[] getConstructors()
>Constructor<T> getConstructor(类<?>...parameterTypes)
>Constructor<?>[] getDeclaredConstructors()
>Constructor<T> getDeclaredConstructor(类<?>...parameterTypes)
3.获取成员方法们:
>Method[] getMethods()
>Method getMethod(String name, 类<?>... parameterTypes)
>Method[] getMethods()
>Method getMethod(String name, 类<?>... parameterTypes)
4.获取类名:
>String getName()
反射_Class对象功能_获取Fileld
Field:成员变量
>操作:
1.设置值
>void set(Object obj,Object value)
2.获取值
>get(Object obj)
3.忽略访问权限修饰符的安全检查
>setAccessible(true):暴力反射
public static void main(String[] args) throws Exception { Class per = Person.class; //Field[] getFields() Field[] fields = per.getFields(); for (Field field : fields) { System.out.println(field); } System.out.println("========="); //Field getField(String name) Field a = per.getField("a"); //获取成员变量a的值 Person p = new Person(); Object value = a.get(p); System.out.println(value); //设置a的值 a.set(p,"张三"); System.out.println(p); System.out.println("=================="); //Field[] getDeclaredFields() Field[] declaredFields = per.getDeclaredFields(); for (Field declaredField : declaredFields) { System.out.println(declaredField); } //Field getDeclaredField(String name) Field d = per.getDeclaredField("d"); //忽略访问权限修饰符的安全检查 d.setAccessible(true); Object value2 = d.get(p); System.out.println(value2); }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix