反射(4)--Field类
来源:互联网 发布:mac windows 无法启动 编辑:程序博客网 时间:2024/05/17 04:15
获取Field类
通过Class类的以下方法,我们可以获得构造器。
l public Field [] getFields ():所有公共成员变量
l public Field [] getDeclaredFields():所有成员变量
l public FieldgetField(String name):获取单个公共成员变量,name
参数是一个 String
,用于指定所需字段的简称。
// 获取字节码文件对象
Class c =Class.forName("cn.itcast_01.Person");
// 获取address并对其赋值
Field addressField = c.getField("address");
// 通过无参构造方法创建对象
Constructor con =c.getConstructor();
Object obj =con.newInstance();
addressField.set(obj,"北京"); // 给obj对象的addressField字段设置值为"北京"
l public FieldgetDeclaredField(String name):获取单个成员变量(能获取私有的,但要用Field类的setAccessible方法设置访问权限),name 参数是一个 String,它指定所需字段的简称。注意,此方法不反映数组类的 length 字段。
// 获取字节码文件对象
Class c = Class.forName("cn.itcast_01.Person");
// 获取name并对其赋值
Field nameField = c. getDeclaredField ("name");
// 通过无参构造方法创建对象
Constructor con =c.getConstructor();
Object obj =con.newInstance();
nameField.setAccessible(true);
nameField.set(obj,"陈锋"); // 给obj对象的nameField字段设置值为"陈锋"
Field类的常用方法
l public void setAccessible(boolean flag):值为true则指示反射的对象在使用时应该取消Java语言访问检查。
l public void set(Object obj, Object value):将obj对象变量上此 Field
对象表示的字段设置为指定的值value。
// 获取字节码文件对象
Class c =Class.forName("cn.itcast_01.Person");
// 获取name并对其赋值
Field nameField = c. getDeclaredField ("name");
// 通过无参构造方法创建对象
Constructor con =c.getConstructor();
Object obj =con.newInstance();
nameField.setAccessible(true);
nameField.set(obj,"陈锋"); // 给obj对象的nameField字段设置值为"陈锋"
- 反射(4)--Field类
- 反射-Field类
- java 反射 Field类
- java 反射 Field类
- java 反射 Field类
- java 反射 Field类
- java 反射 Field类
- 反射(Field类)
- 反射 --- 成员变量Field类的反射
- 反射--Field
- 反射-Field
- 反射Field
- 反射Class类、Constructor类、Field类
- Constructor类和Field类的反射
- Java_反射_Class类(Method,Field,Constructor)
- Java_反射_Class类(Method,Field,Constructor)
- Constructor,Field,Meothd类的反射应用
- 反射相关类Field方法列表分析
- 面试资料待整理
- mybatis3入门总结
- SSM框架打造完整电商平台(三)
- QQ游戏百万人同时在线服务器架构实现
- weka使用
- 反射(4)--Field类
- Android签名
- Fragment
- java文件上传与下载
- 单点登录
- 几种经典的网络服务器架构模型的分析与比较
- 串口与并口的区别
- 2017面试题收集
- 中断处理深度剖析