`

利用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 Ioc例子,基于反射.rar

    Java Ioc例子,基于反射,PS:lfioc能够自动识别set、get方法,比如set字段a时,a、A、setA三种写法在lfioc中都是允许的。以字符串方式获得Bean实例,为Bean中setA注入数据,为setB注入数据,获得IBean接口。

    Java常见面试题208道.docx

    面试题包括以下十九部分:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql...

    java面试题

    51.5. java中有几种方法可以实现一个线程?用什么关键字修饰同步方法? stop()和suspend()方法为何不推荐使用? 25 52. 数据连接池 25 52.1. 连接池的基本原理: 25 52.2. 连接池的工作机制 25 52.3. 建立连接池 26 ...

    eclipse安卓开发必备工具

    "分享一个在Java中反射获取私有构造函数、属性、方法" 我一直以为类的私有构造函数、属性、方法除了类自身其他类是无法访问的,前几天正好学习Spring框架,在学习Spring框架基础 Bean包时,写了一个简单的例子,类似...

    史上最全java面试,103项重点知识,带目录

    一、Java 基础 1 1. JDK 和 JRE 有什么区别? 1 2. == 和 equals 的区别是什么? 1 3. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗? 3 4. final 在 java 中有什么作用? 4 5. java 中的 Math.round...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part2

     8.4.2 Session的load()和get()方法  8.4.3 Session的update()方法  8.4.4 Session的saveOrUpdate()方法  8.4.5 Session的merge()方法  8.4.6 Session的delete()方法  8.4.7 Session的replicate()方法  8.5 ...

    将 Flex 集成到 Java EE 应用程序的最佳实践(完整源代码)

    现在,Java EE 后端与 Flex 前端的接口已经定义好了,要完成 Java EE 后端的接口实现类非常容易,利用 Spring 强大的依赖注入功能,可以通过几行简单的代码完成: 清单 2. FlexServiceImpl class public ...

    +Flex+集成到+Java+EE+应用程序的最佳实践(完整源代码)

    现在,Java EE 后端与 Flex 前端的接口已经定义好了,要完成 Java EE 后端的接口实现类非常容易,利用 Spring 强大的依赖注入功能,可以通过几行简单的代码完成: 清单 2. FlexServiceImpl class public class ...

    DWR.xml配置文件说明书(含源码)

    仅仅通过反射方法没有办法知道集合元素中的类型,所以上面的两个converter能将任何集合转换成相对javascript而言有意义的对象.然而没有办法将不同的集合类类型分别采用不同的转换方法.因为没有办法完全自动进行转换,...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part4

     8.4.2 Session的load()和get()方法  8.4.3 Session的update()方法  8.4.4 Session的saveOrUpdate()方法  8.4.5 Session的merge()方法  8.4.6 Session的delete()方法  8.4.7 Session的replicate()方法  8.5 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part3

     8.4.2 Session的load()和get()方法  8.4.3 Session的update()方法  8.4.4 Session的saveOrUpdate()方法  8.4.5 Session的merge()方法  8.4.6 Session的delete()方法  8.4.7 Session的replicate()方法  8.5 ...

    精通 Hibernate:Java 对象持久化技术详解(第2版).part1.rar

     8.4.2 Session的load()和get()方法  8.4.3 Session的update()方法  8.4.4 Session的saveOrUpdate()方法  8.4.5 Session的merge()方法  8.4.6 Session的delete()方法  8.4.7 Session的replicate()方法  8.5 ...

    springmybatis

    public void setId(int id) { this.id = id; } public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getUserAge()...

    Spring面试题

    3. hibernate使用Java反射机制,而不是字节码增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. ...

Global site tag (gtag.js) - Google Analytics