用反射获取类属性值并且赋值

/**
     * 
     * @projectname  项目名称: cms-interface
     * @packageclass 包及类名: com.jy.modules.utils.CreditUtil.java
     * @description  功能描述: Object 可以是任意对象在不确定对象的时候获取值设置值
     * @author            作        者: zhouzhiwei
     * @param                   参        数: @param Requestobj
     * @param                   参        数: @param obj
     * @param                   参        数: @return
     * @param                   参        数: @throws Exception
     * @return       返回类型: Object
     * @createdate   建立日期: 2015年11月3日下午7:05:04
     */
    @SuppressWarnings({ "unchecked", "rawtypes", "unused" })
    public static Object getObjectVale(Object Requestobj,  Object obj) throws Exception {
        Class clazz = obj.getClass() ;//得到类
        clazz=clazz.getSuperclass();  //得到父类
        
        Class Request = Requestobj.getClass() ;//得到类
        Request=Request.getSuperclass(); //得到父类
        
        Method method1 = clazz.getDeclaredMethod("setRetTime", String.class) ;//根据set方法set值(setRetTime方法名)
        method1.invoke(obj,  DateUtil.getDefaultCurrentTime()) ;
        
        Method method2 = clazz.getDeclaredMethod("setFrontTransNo", String.class) ;
        method2.invoke(obj,  getFieldValue(Requestobj,Request,"frontTransNo")) ;
        
        Method method3 = clazz.getDeclaredMethod("setCollateralTransNo", String.class) ;
        method3.invoke(obj,  SerialNoGenUtil.getSerialNo(getFieldValue(Requestobj,Request,"frontTransNo"))) ;
        
        return obj ;
    }
    
    /**
     * 
     * @projectname  项目名称: cms-interface
     * @packageclass 包及类名: com.jy.modules.utils.CreditUtil.java
     * @description  功能描述: 获取属性值
     * @author            作        者: zhouzhiwei
     * @param                   参        数: @param obj
     * @param                   参        数: @param cal
     * @param                   参        数: @param name
     * @param                   参        数: @return
     * @param                   参        数: @throws Exception
     * @return       返回类型: String
     * @createdate   建立日期: 2015年11月3日下午7:09:45
     */
    @SuppressWarnings("rawtypes")
    public static String getFieldValue(Object obj,Class cal,String name) throws Exception{
        Field field=cal.getDeclaredField(name);//根据key获得属性
        field.setAccessible(true);//设置访问权限私有的
        String val=  (String) field.get(obj);//取属性值
        return val;
    }
    

 

posted @ 2015-11-03 19:12  也许还年轻  阅读(1067)  评论(0编辑  收藏  举报