`
shihuan830619
  • 浏览: 584042 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

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

    博客分类:
  • J2SE
阅读更多
/**   

 * 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 楼 spp_1987 2013-10-23  
看不懂 。。。。。

相关推荐

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

    在Java中,Bean通常是指符合JavaBeans规范的Java类,它们是可重用的组件,具有无参数的构造函数、`get`和`set`方法(用于访问属性)以及可以序列化的特性。JavaBeans允许开发者在运行时通过反射机制来创建、配置和...

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

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

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

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

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

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

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

    3. **设置Bean的属性值**:对于Map到Bean的转换,遍历Map,使用反射调用Bean的setter方法来设置每个属性的值。首先,使用`Method`对象的`setAccessible(true)`使私有方法可访问,然后调用`invoke()`方法执行setter。...

    拷贝JSON对象值进Java Bean对象

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

    java bean和map之间的互转

    反过来,从Map转换为Java Bean的过程可以使用Java的构造器或者无参构造器结合setter方法完成。以下是一个基本的实现: ```java import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTarget...

    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的反射机制深度解析

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

    java反射原理详解

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

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

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

    Java反射机制经典案例

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

    JAVA反射简单例子

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

    早期自学java反射知识笔记

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

    java反射机制

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

    java反射Demo

    下面将详细介绍Java反射的原理和使用方法。 一、Java反射的基础概念 1. 类加载:当Java程序运行时,JVM会将对应的.class文件加载到内存中,形成类的字节码对象,此时类的结构信息已经存在,可以通过反射访问这些...

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

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

    Java反射示例代码.rar

    - 访问属性:使用`Field field = clazz.getField("fieldName")`获取公共字段,`field.set(object, value)`设置对象的字段值,`field.get(object)`获取对象的字段值。 - 调用方法:使用`Method method = clazz....

    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更快

    BeanMapper 一个BeanUtils.copyProperties的小型快速替代。 起因 由于BeanUtils(Spring或Apache Commons)的copyProperties实现是利用反射实现的,它在大量调用时具有比较严重的性能问题。 BeanMapper通过javassist...

Global site tag (gtag.js) - Google Analytics