`
eleven027
  • 浏览: 22693 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

反射动态获取和设置对象的值

阅读更多

在做解析XML时候经常要将数据转换成为对象,手动设置对象每个属性的值太麻烦了,而且属性太多时经常漏掉,所以在不十分在意效率的情况下偷懒一下

/**
* 将对象转换为map
* @param rgxBean
* @return
* @throws IllegalArgumentException
* @throws IllegalAccessException
*/
private Map<String,Object> convertMap(Object obj) throws IllegalArgumentException, IllegalAccessException{
Map<String,Object> map=new HashMap<String,Object>();
Field[] fields=
obj.getClass().getDeclaredFields();
for(Field field:fields){

field.setAccessible(true);
map.put(field.getName(), field.get(rgxBean));

field.setAccessible(false);
}
return map;
}

/**
* 将Map转换成为对象
* @param map
* @return
* @throws IllegalArgumentException
* @throws IllegalAccessException
*/
private Object convertObj(Map<String,Object> map) throws IllegalArgumentException, IllegalAccessException{
Object obj=new Object();
Field[] fields=
obj.getClass().getDeclaredFields();
for(Field field:fields){
field.setAccessible(true);
field.set(
obj, map.get(field.getName()));
field.setAccessible(false);
}
return 
obj;
}

 

0
2
分享到:
评论
1 楼 zzx0421 2011-07-27  
建议使用xom进行对象设值与转换

相关推荐

    使用反射获取和设置对象的值

    本文将深入探讨如何使用反射在Java中获取和设置对象的值,这是许多高级编程任务中不可或缺的一部分。 首先,让我们理解反射的基本概念。在Java中,反射API是`java.lang.reflect`包提供的,它允许我们执行以下操作:...

    利用反射机制动态获取对象属性名称及数据类型

    本文将详细讲解如何利用反射机制动态获取对象的属性名称及其数据类型,以C#语言为例,结合ASP.NET环境进行阐述。 首先,我们需要创建一个实体类,例如`Student`,这个类包含了姓名(UserName)、年龄(Age)和地址...

    java反射,获取所有属性、方法以及List集合类

    这些`Field`对象提供了设置和获取字段值的能力,通过`set()`和`get()`方法。 ```java Class&lt;?&gt; clazz = Class.forName("com.example.YourClass"); Field[] fields = clazz.getDeclaredFields(); for (Field ...

    通过反射获得实体类的字段和值

    在深入探讨如何通过反射获取实体类的字段和值之前,我们先来理解一下反射是什么以及它在.NET框架中的作用。反射是一种强大的编程技术,允许运行时动态地获取类型的信息并操作对象。它提供了对程序集、模块、类型、...

    frida反射调用对象中的方法与字段.pdf

    本文主要讲解了在遇到需要操作Java对象的参数或返回值时,如何利用Frida这一动态代码插桩工具来进行反射调用,包括调用对象的方法和获取对象的字段。Frida是一个强大的动态代码插桩工具,它可以注入到几乎所有的进程...

    java 通过反射获取枚举类,及枚举类的值,枚举类枚举实例名

    这些代码可能包括创建枚举类,然后通过反射获取枚举值、实例名以及演示如何使用`getDeclaredConstructor()`和`newInstance()`方法来访问私有构造函数(虽然这不是常规用法)。 通过深入理解这些概念,你可以更好地...

    完整版缓存CacheManagerDemo+通过反射获取对象

    在缓存管理中,反射机制可以用来动态地获取和操作对象,比如根据类名实例化对象,或者在缓存中查找或设置对象的属性。 4. **工厂设计模式**: 工厂设计模式是一种常用的创建型设计模式,它提供了一种创建对象的...

    java 利用反射获取内部类静态成员变量的值操作.docx

    我们的目标是通过反射获取`Apple`类中的`version`和`date`这两个静态成员变量的值。 ##### 实现步骤 1. **获取Class对象**:首先,我们需要获取到内部类`Apple`的`Class`对象。 2. **查找静态字段**:接着,使用`...

    java 通过反射获取类上注解,方法上注解,注解里的值及方法参数

    本教程将深入探讨如何通过反射获取类、方法上的注解以及注解中的值和方法参数。 1. **注解的定义与使用** 注解以`@`符号开头,后面跟着注解的类型。例如,`@Override`表示方法重写,`@Deprecated`表示某个功能已...

    C# 利用反射动态创建对象

    例如,通过MethodInfo和PropertyInfo对象,我们可以获取到类的方法和属性信息,然后通过Invoke()方法执行方法或Get、Set方法修改属性值。 总之,反射在C#中提供了一种灵活的方式,使得程序可以在运行时探索和操作...

    Java利用反射获取object的属性和值代码示例

    "Java利用反射获取object的属性和值代码示例" Java中的反射机制可以让我们在程序运行时动态地获取和修改对象的属性和值,这个技术非常有用,尤其是在一些框架和库的实现中。在这篇文章中,我们将通过一个实用的例子...

    java反射获取所有属性,获取所有get方法,包括子类父类

    在标题和描述中提到的知识点主要集中在如何通过反射获取类的所有属性和get方法,包括来自子类和父类的。下面将详细介绍这些内容。 1. **获取所有属性**: 在Java中,`java.lang.Class` 类提供了获取类属性的方法。...

    C#通过属性名字符串获取、设置对象属性值操作示例

    C# 通过属性名字符串获取、设置对象属性值操作示例主要介绍了 C# 通过反射获取对象属性值并设置属性值、获取对象的所有属性名称及类型等相关操作技巧。下面是详细的知识点解释: 一、通过反射获取对象属性值 在 C#...

    运用反射得到类中的属性和值

    #### 二、反射获取类中的属性及值 下面,我们将通过具体的代码示例来展示如何使用反射来获取类中的所有属性及其对应的值。 ##### 1. 获取类的信息 首先,我们需要获取目标类的信息。这里使用`getClass()`方法来...

    用反射的方式获取父类中的所有属性和方法

    5. 动态调用方法和设置/获取属性值: 一旦我们有了`Method`或`Field`对象,就可以在运行时动态地调用方法或设置/获取属性值: ```java Object obj = ...; // 父类实例 method.invoke(obj, parameters); // 调用...

    C#设置和获取实例对象属性

    下面将详细介绍这三个概念以及如何使用它们来设置和获取实例对象的属性值。 **Emit** Emit是.NET Framework中的System.Reflection.Emit命名空间的一部分,它允许我们在运行时动态地创建类型、方法、属性等。Emit...

    反射获取属性调用方法反射获取属性调用方法

    反射获取属性和调用方法是其核心功能,广泛应用于框架设计、动态代理、插件机制等领域。下面将详细解释这两个概念。 1. 反射获取属性: 在Java中,`java.lang.reflect`包提供了`Class`类来获取类的信息,包括其...

    在反射动态机制生成对象的实体

    - 调用类的方法或设置/获取字段值。 在反射机制中,创建对象实例主要依赖于两种方法:`Class`类的`newInstance()`方法和`Constructor`类的`newInstance()`方法。 #### 通过Class实例化对象 当一个类被加载到JVM中...

    .NET中反射的应用 获取Dll参数

    - `FieldInfo.GetValue(Object)`和`FieldInfo.SetValue(Object, Object)`:分别用于获取和设置字段的值。 - `PropertyInfo.GetValue(Object)`和`PropertyInfo.SetValue(Object, Object)`:用于获取和设置属性的值...

    c# 反射调用对象成员 !

    `GetProperty()`用于获取属性信息,`GetValue()`和`SetValue()`用于读取和设置属性值。例如: ```csharp PropertyInfo prop = type.GetProperty("MyProperty"); object value = prop.GetValue(instance); prop....

Global site tag (gtag.js) - Google Analytics