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

/**
     *
     * @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;
    }
    
时间: 2024-12-16 13:36:03

用反射获取类属性值并且赋值的相关文章

c# 如何通过反射 获取\设置属性值

c# 如何通过反射 获取\设置属性值 //定义类public class MyClass{public int Property1 { get; set; }}static void Main(){MyClass tmp_Class = new MyClass();tmp_Class.Property1 = 2;Type type = tmp_Class.GetType(); //获取类型System.Reflection.PropertyInfo propertyInfo = type.Get

java 通过反射获取类属性结构,类方法,类父类及其泛型,类,接口和包

首先自定义三个类 package reflection1; public interface MtInterface { void info(); } package reflection1; import java.io.Serializable; public class Creature<T> implements Serializable { private char gender; public double weight; private void breath() { Syste

C#利用反射获取对象属性值

public static string GetObjectPropertyValue<T>(T t, string propertyname){     Type type = typeof(T); PropertyInfo property = type.GetProperty(propertyname); if (property == null) return string.Empty; object o = property.GetValue(t, null); if (o == n

c# 如何通过反射 获取\设置属性值、

//定义类 public class MyClass{public int Property1 { get; set; }}static void Main(){MyClass tmp_Class = new MyClass();tmp_Class.Property1 = 2;Type type = tmp_Class.GetType(); //获取类型System.Reflection.PropertyInfo propertyInfo = type.GetProperty("Property

反射获取对象属性值和字段值

ps:没什么技术含量,直接贴代码 public T GetFieldValue<T>(object obj, string name) { Type type = obj.GetType(); System.Reflection.FieldInfo fieldInfo = type.GetField(name); if (fieldInfo == null) { throw new MissingFieldException(name); } object objectValue = fiel

IE8和IE7如何获取background-position属性值

IE8和IE7如何获取background-position属性值:之所以要单独介绍一下如何获取background-position属性值,是因为在IE8和IE8以下浏览器中存在一定的兼容性问题,下面对此做一下简单介绍,希望能够给需要的朋友带来帮助.一.使用style方式:此方式只能够获取使用style方式定义的css样式属性,代码如下: <!DOCTYPE html> <html> <head> <meta charset="utf-8"&

反射获取类的几种方法

1 public class Demo { 2 3 /** 4 * 反射:加载类,获得类的字节码 5 * @param args 6 * @throws ClassNotFoundException 7 */ 8 public static void main(String[] args) throws ClassNotFoundException { 9 10 //1 11 Class clazz = Class.forName("Person"); 12 13 //2 14 Cla

Swift 3.0 运行时获取类属性

在OC中,没有绝对的私有,用运行时可以取出. 在Swift中,有绝对的私有,用private修饰的,是无法取出的. 以下是Swift获取类属性的方法: ////  Person.swift// import UIKit class Person: NSObject {    var name: String?    var age:Int = 0   private var title: String?        class func propertyList( ) {           

对比两个实体类属性值的差异

/// <summary> /// 对比两个实体类属性值的差异 /// </summary> /// <typeparam name="T">实体类</typeparam> /// <param name="oldMod">原实体类</param> /// <param name="newMod">新实体类</param> /// <return