Reserved field maintenance class ObjectUtil

Use reflection assignment.

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

 

Such as:

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


/**
 * This class is used to maintain reserved fields in business entities in the system
 * Provide public method signatures
 *
 */
public class ObjectUtil {

	/**
	 * Set some attribute values ​​of the creator, no need to update the creation date
	 * @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();
		}
	}

	/**
	 * Method name: setCreatedBy
	 * Function description:
	 * Set some attribute values ​​of the creator
	 * @param object
	 */
	@SuppressWarnings("unchecked")
	public static void setCreatedBy(Object object) {
		// get the class 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();
		}

	}
}

 or:

/**
	 *
	 * Set the property named fieldName in the target object to value
	 *
	 * @param target
	 * @param fieldName
	 * @param value
	 *
	 * @return target object
	 *
	 */
	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;
	}

 

 

。。

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326609595&siteId=291194637