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

/**   

 * 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;     

}

猜你喜欢

转载自shihuan830619.iteye.com/blog/1198739