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; }
。。