`
uule
  • 浏览: 6310998 次
  • 性别: Icon_minigender_1
  • 来自: 一片神奇的土地
社区版块
存档分类
最新评论

保留字段维护类ObjectUtil

 
阅读更多

使用反射赋值。

Class clazz = object.getClass();
Method method = clazz.getDeclaredMethod("setLastUpdateDate", Date.class);
method.invoke(object, new Date());

 

如:

import java.lang.reflect.Method;
import java.util.Date;
import javax.servlet.http.HttpSession;


/**
 * 该类用来对系统中业务实体中的保留字段进行维护
 * 提供公用的方法签名
 *
 */
public class ObjectUtil {

	/**
	 * 设置创建人的一些属性值,不需要更新创建日期
	 * @param object
	 */
	@SuppressWarnings("unchecked")
	public static void setUpdatedBy(Object object) {
		@SuppressWarnings("rawtypes")
		Class clazz = object.getClass();
		HttpSession httpSession = GlobalSession.getHttpSession();
		try {
			SysUser dbCheckUser = (SysUser) httpSession.getAttribute(SessionKeys.SESSION_SYS_USER);
			Long userId = dbCheckUser.getId();

			Method setLastUpdateBy = clazz.getDeclaredMethod("setLastUpdateBy", Long.class);
			Method setLastUpdateDate = clazz.getDeclaredMethod("setLastUpdateDate", Date.class);

			setLastUpdateBy.invoke(object, userId);
			setLastUpdateDate.invoke(object, new Date());
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}

	/**
	 * 方法名称:setCreatedBy
	 * 功能描述:
	 * 设置创建人的一些属性值
	 * @param object
	 */
	@SuppressWarnings("unchecked")
	public static void setCreatedBy(Object object) {
		// 获得类对象
		@SuppressWarnings("rawtypes")
		Class clazz = object.getClass();
		HttpSession httpSession = GlobalSession.getHttpSession();
		try {
			SysUser dbCheckUser = (SysUser) httpSession.getAttribute(SessionKeys.SESSION_SYS_USER);
			Long userId = dbCheckUser.getId();
			Method setCreatedBy = clazz.getDeclaredMethod("setCreatedBy", Long.class);
			Method setLastUpdateBy = clazz.getDeclaredMethod("setLastUpdateBy", Long.class);
			Method setCreatedDate = clazz.getDeclaredMethod("setCreatedDate", Date.class);
			Method setLastUpdateDate = clazz.getDeclaredMethod("setLastUpdateDate", Date.class);
			Method setEnabledFlag = clazz.getDeclaredMethod("setEnabledFlag", String.class);

			setCreatedBy.invoke(object, userId);
			setLastUpdateBy.invoke(object, userId);
			setCreatedDate.invoke(object, new Date());
			setLastUpdateDate.invoke(object, new Date());
			setEnabledFlag.invoke(object, Constants.ENABLED_FLAG_Y);
		} catch (Exception ex) {
			ex.printStackTrace();
		}

	}
}

 或:

/**
	 * 
	 * 设置target对象中名为fieldName的属性值为value
	 * 
	 * @param target
	 * @param fieldName
	 * @param value
	 * 
	 * @return target对象
	 * 
	 */
	public static Object setValueToField(Object target, String fieldName, Object value){
		Field[] fs = target.getClass().getDeclaredFields();
		for(Field f : fs){
			if(f.getName().equalsIgnoreCase(fieldName)){
				try {
					f.setAccessible(true);
					f.set(target, value);
				} catch (Exception e) {
					logger.error("\u8bbe\u7f6e\u503c\u51fa\u9519\uff0c\u8bf7\u68c0\u67e5 [target : " + target.getClass() + "][field : " + f.getName() + "][value : " + value.getClass() + "]");
					e.printStackTrace();
				}
				break;
			}
		}
		return target;
	}

 

 

。。

分享到:
评论

相关推荐

    ObjectUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    java-Common-Tools.rar_common_java ObjectUtil_java comm_java 常用类

    Java常用的工具类,包含常用的一些工具类。

    LotusPhp笔记之:基于ObjectUtil组件的使用分析

    ObjectUtil组件其实就是单例模式的最好范例,声明调用各个组件的时候,用ObjectUtil调用,可以有效的防止调用过多的类而导致错误或者资源浪费。 比如调用Db组件,这样声明就可以了 $db = LtObjectUtil::singleton(...

    动态拼接sql语句工具类,拼接where后面语句

    动态拼接sql语句工具类,拼接where后面语句 配合原生jdbc仿动态sql注入 if (ObjectUtil.isNotEmpty(maxLat)&&ObjectUtil.isNotEmpty(minLat)){ sqlParamList.add(new SqlParam("lat",minLat, SqlOpEnum.GE)); ...

    Suchy:Java工具类库;在全面集成的Hutool上进行工具类二次收集的一个类库

    依赖与ApacheCommon的Java通用工具工程类概览: ArrayUtil -----> ArrayUtil通用工具类...数值通用工具类ObjectUtil ----->对象通用工具类PropertiesLoader ----->配置文件加载读取通用工具类ReflectionUti

    Java中Equals使用方法汇总

    主要采用问答的方式集中讲解了Java中Equals的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    java常用util工具类

    Stringutil FileUtil MD5 JsonUtil

    agile-framework-common-util-master_java_

    object.ObjectUtil中的对象深度转换能力,方法为ObjectUtil.to 该能力是Agile系列框架高代码复用率的根本所在

    FontUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    IpUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    XMLUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    CharacterUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    RandomStringUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    ListUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    CookieUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    MailUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    LineIterator.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    BooleanUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

    DateUtil.java

    资源内容:工欲善其事必先利其器,本资源内容为Java开发常用工具类打包,如BeanUtil,ArrayUtil,HtmlUtil,ClassUtil,DateUtil,FileUtil,...XmlUtil,UrlUtil,StringUtil,ObjectUtil等等共31个常用开发工具类。

Global site tag (gtag.js) - Google Analytics