反射取类中的所有字段的值
来源:互联网 发布:蔻臣士怎么样知乎 编辑:程序博客网 时间:2024/05/22 14:29
class Person {
private String name;
private String age;
private Children children;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Children getChildren() {
return children;
}
public void setChildren(Children children) {
this.children = children;
}
}
class Children {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
接下来我们来写一个测试函数
public Class test{
public static void main(String[] args){
Children c = new Children();
c.setName("Lincoln");
c.setAge("18");
Person p = new Person();
p.setName("kenny");
p.setage("28");
p.setChildren(c);
Class<? extends Person> persons = p.getClass();
// 把类的所有属性放进一个List里面。Field类是java里面的反射机制的一个类,你可以去查查API
List<Field> fields = new ArrayList<Field>();
Collections.addAll(fields,personClass.getDeclaredFields());
for(Field field : fields){
//设置访问权限
field.setAccessible(true);
//获得当前Object的属性
Object personField = field.get(p);
//判断属性的类型,如果是POJO则通过反射机制提取其属性显示
if( personField instanceof Children){
Children ch = (Children)personField;
Class<? extends Children> childrenClass = ch.getClass();
List<Field> chfields = new ArrayList<Field>();
Collections.addAll(chfields, childrenClass.getDeclaredFields());
for(Field f : chfields){
f.setAccessible(true);
Object chField = f.get(children);
System.out.println(chField.toString());
}
}
}else{
System.out.println(personField.toString());
}
}
}
运行结果为
kenny
28
lincoln
18
private String name;
private String age;
private Children children;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Children getChildren() {
return children;
}
public void setChildren(Children children) {
this.children = children;
}
}
class Children {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
接下来我们来写一个测试函数
public Class test{
public static void main(String[] args){
Children c = new Children();
c.setName("Lincoln");
c.setAge("18");
Person p = new Person();
p.setName("kenny");
p.setage("28");
p.setChildren(c);
Class<? extends Person> persons = p.getClass();
// 把类的所有属性放进一个List里面。Field类是java里面的反射机制的一个类,你可以去查查API
List<Field> fields = new ArrayList<Field>();
Collections.addAll(fields,personClass.getDeclaredFields());
for(Field field : fields){
//设置访问权限
field.setAccessible(true);
//获得当前Object的属性
Object personField = field.get(p);
//判断属性的类型,如果是POJO则通过反射机制提取其属性显示
if( personField instanceof Children){
Children ch = (Children)personField;
Class<? extends Children> childrenClass = ch.getClass();
List<Field> chfields = new ArrayList<Field>();
Collections.addAll(chfields, childrenClass.getDeclaredFields());
for(Field f : chfields){
f.setAccessible(true);
Object chField = f.get(children);
System.out.println(chField.toString());
}
}
}else{
System.out.println(personField.toString());
}
}
}
运行结果为
kenny
28
lincoln
18
- 反射取类中的所有字段的值
- c# 反射 遍历实体的所有字段,ObjectDumper类实现
- Java反射代码--02.得到某类的所有字段
- 使用反射获取一个类的所有方法和字段
- 反射-获取类及其父类中声明的所有字段集合
- Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
- Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
- Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题
- java中使用反射获取pojo(实体)类的所有字段值
- java中使用反射获取pojo(实体)类的所有字段值
- Java反射-使用反射修改一个类中的所有String类型的成员变量的值
- 反射 类的字段
- 取oracle某个表里的所有字段信息
- 关于java'反射机制,获得类的所有方法与字段
- Java-Reflection反射-获取包括父类在内的所有字段
- Java-Reflection反射-获取包括父类在内的所有字段
- 集合(1)循环取集合中的值(+取特定字段的值)
- 利用反射技术修改类中的字段(成员变量的反射)
- OpenStack详细解读:定义,好处与使用实例(3)
- 关于贝叶斯方法
- VC++中bmp图象的显示
- android ListView详解
- jQuery对html元素取值与赋值
- 反射取类中的所有字段的值
- VC++ MFC 常用技巧
- 实时系统中的优先级翻转问题
- VC ClassView标签页里不显示类信息或者显示不全解决
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>会报错
- RBAC权限管理
- 单向链表
- Js中运用正则表达式验证输入是否有特殊字符 .
- 用JS实现用 字符串 替换 占位符