`

利用JAVA Bean 反射得到set,get方法

    博客分类:
  • Java
 
阅读更多
/** 
 * java反射bean的get方法 
 *  
 * @param objectClass 
 * @param fieldName 
 * @return 
 */  
@SuppressWarnings("unchecked")  
public static Method getGetMethod(Class objectClass, String fieldName) {  
    StringBuffer sb = new StringBuffer();  
    sb.append("get");  
    sb.append(fieldName.substring(0, 1).toUpperCase());  
    sb.append(fieldName.substring(1));  
    try {  
        return objectClass.getMethod(sb.toString());  
    } catch (Exception e) {  
    }  
    return null;  
}  
  
/** 
 * java反射bean的set方法 
 *  
 * @param objectClass 
 * @param fieldName 
 * @return 
 */  
@SuppressWarnings("unchecked")  
public static Method getSetMethod(Class objectClass, String fieldName) {  
    try {  
        Class[] parameterTypes = new Class[1];  
        Field field = objectClass.getDeclaredField(fieldName);  
        parameterTypes[0] = field.getType();  
        StringBuffer sb = new StringBuffer();  
        sb.append("set");  
        sb.append(fieldName.substring(0, 1).toUpperCase());  
        sb.append(fieldName.substring(1));  
        Method method = objectClass.getMethod(sb.toString(), parameterTypes);  
        return method;  
    } catch (Exception e) {  
        e.printStackTrace();  
    }  
    return null;  
}  
  
/** 
 * 执行set方法 
 *  
 * @param o执行对象 
 * @param fieldName属性 
 * @param value值 
 */  
public static void invokeSet(Object o, String fieldName, Object value) {  
    Method method = getSetMethod(o.getClass(), fieldName);  
    try {  
        method.invoke(o, new Object[] { value });  
    } catch (Exception e) {  
        e.printStackTrace();  
    }  
}  
  
/** 
 * 执行get方法 
 *  
 * @param o执行对象 
 * @param fieldName属性 
 */  
public static Object invokeGet(Object o, String fieldName) {  
    Method method = getGetMethod(o.getClass(), fieldName);  
    try {  
        return method.invoke(o, new Object[0]);  
    } catch (Exception e) {  
        e.printStackTrace();  
    }  
    return null;  
}  
分享到:
评论
1 楼 freeren 2011-11-11  

相关推荐

    JAVA动态对象装配实现 测试--初步实现bean的set/get功能

    通过`DYNC_Object.java`的示例,我们可以学习如何利用反射来实现bean的`set`和`get`操作,这为我们提供了更大的程序设计自由度,使得代码能够适应不断变化的需求。理解并熟练掌握这一技术,对于提升Java开发能力非常...

    java Map转换成bean,利用java反射以及java和bean包

    `mapToBean`方法接受一个Map和目标Bean的Class对象,首先检查参数是否有效,然后创建一个新的Bean实例,遍历Map中的每一个键值对,通过反射找到Bean中对应的Field,设置其可访问,最后调用`set()`方法设置属性值。...

    java反射以及复制一个bean的值到另一个bean中。

    在Java编程中,反射(Reflection)是一个强大的工具,它允许我们在运行时检查和操作类、接口、字段和方法。通过反射,我们可以动态地创建对象、访问私有成员、调用私有方法,甚至改变对象的行为。Java反射 API 主要...

    Java Bean 遍历和使用注解给Bean的属性添加属性值

    - **访问和修改属性值**:使用`Field`的`get(Object obj)`和`set(Object obj, Object value)`方法可以读取和设置Bean实例的属性值。 - **遍历getter和setter**:`Class.getMethod(String name, Class<?>... ...

    通过java反射实现map与bean之间互转

    在给定的标题“通过java反射实现map与bean之间互转”中,我们要探讨的是如何利用Java反射机制将Map对象转换为Java Bean对象,以及反过来,将Java Bean对象转换为Map对象。这个过程在数据处理和序列化中非常常见。 ...

    利用Java的反射与代理实现IOC模式

    4. `Field` 类:代表类的字段,可以用来访问或修改字段值,如`get()`和`set()`方法。 接下来,我们讨论Java代理。动态代理机制允许我们在运行时创建一个实现一组给定接口的新类。这在实现AOP(面向切面编程)和IOC...

    拷贝JSON对象值进Java Bean对象

    这段代码利用了反射机制,找到Java Bean类中的setter方法,根据JSON中的键值对调用setter方法设置属性值。 另一种常见的方式是使用Gson库,它的使用更加简洁。首先,引入Gson库,然后使用`Gson.fromJson()`方法进行...

    java bean和map之间的互转

    转换Java Bean到Map的过程通常是通过反射机制来实现的。以下是一个简单的示例: ```java import java.lang.reflect.Method; import java.util.HashMap; import java.util.Map; public class BeanToMapConverter { ...

    Java Bean对象和Map相互转换.zip

    myBean.getClass().getMethod("set" + key.toString().substring(0, 1).toUpperCase() + key.toString().substring(1), beanMap.get(key).getClass()).invoke(myBean, beanMap.get(key)); } ``` 此外,提供的`...

    利用java反射技术实现动态搜索所有字段

    5. **字段值操作**:`Field`对象提供了`get(Object obj)`和`set(Object obj, Object value)`方法,用于读取和设置指定对象的字段值。确保传入的对象与字段所属的类匹配,否则将抛出异常。 6. **继承关系处理**:...

    Java的反射机制深度解析

    `Field`对象提供了`set()`和`get()`方法,分别用于设置和获取字段的值。 3. **调用方法**:通过`Class`对象的`getMethods()`或`getDeclaredMethods()`方法,我们可以获取类的公共方法或所有方法。`Method`对象的`...

    Java反射机制经典案例

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查并操作类、接口、字段和方法等对象。这种能力使得Java代码能够具备动态性,可以在不知道具体类名的情况下实例化对象,调用方法,访问字段,以及...

    java反射原理详解

    3. **访问字段**:通过`Class`对象的`getField()`或`getDeclaredField()`方法可以获取类的公共字段或所有字段,然后调用`set()`或`get()`方法对字段进行读写操作。注意,访问私有字段可能需要设置访问权限。 4. **...

    JAVA反射简单例子

    下面我们将深入探讨Java反射的基本概念、重要方法以及如何在实际应用中使用它。 1. **什么是反射?** 反射是指在运行时,程序可以获取类的信息(如类名、属性、方法等),并动态地创建对象和调用方法。这使得Java...

    java反射机制

    同样,可以通过`Field`对象的`get()`和`set()`方法来获取和设置私有属性的值。 5. **动态创建代理类** 使用`Proxy`类,可以动态地生成实现了指定接口的代理类实例,这在处理回调或事件驱动的场景中非常有用。 6. ...

    早期自学java反射知识笔记

    * 通过 Field 对象的 get 和 set 方法访问属性 * 通过 Method 对象的 invoke 方法调用方法 ### Java 反射机制的注意事项 * 安全性:Java 反射机制可以访问私有属性和私有方法,可能会导致安全问题,因此需要小心...

    java反射Demo

    Java反射是Java编程语言中的一个强大特性,它允许在运行时检查类、接口、字段和方法的信息,并且能够在运行时动态地创建对象和调用方法。这个特性在处理现实业务问题时尤其有用,例如实现插件化、元编程、动态代理等...

    Java反射示例代码.rar

    - 数据库操作框架:如Hibernate、MyBatis等,利用反射来实例化Java对象,设置属性,调用方法,实现与数据库的交互。 - 字符串操作框架:如Apache Commons BeanUtils库,使用反射实现对象属性的复制。 - 测试工具...

    java反射机制简介

    1. **Field类的get()和set()方法**: ```java Field field = MyClass.class.getField("name"); String value = (String) field.get(myInstance); // 获取值 field.set(myInstance, "NewValue"); // 设置值 ``` ...

    BeanMapper:比BeanUtils.copyProperties更快

    由于BeanUtils(Spring或Apache Commons)的copyProperties实现是利用反射实现的,它在大量调用时具有比较严重的性能问题。 BeanMapper通过javassist类库实现在运行时直接生成字节码来转换类,在首次生成后,后续...

Global site tag (gtag.js) - Google Analytics