/**
* 扩展创建人名称
* [@Time](https://my.oschina.net/u/126678) 2018-03-27
* [@return](https://my.oschina.net/u/556800)
*/
public BaseService<T> extendCreatorName(T dtoObject){
String dtoObjectResourceParam = "creatorId";//dto对象的原本属性
String dtoObjectResultParam = "creatorName";//dto对象的转换属性
UserInfo userInfo = userInfoDao.findById(getAttribute(dtoObject,dtoObjectResourceParam).toString());
String creatorName = userInfo.getName();
setAttribute(dtoObject,dtoObjectResultParam, creatorName);
return this;
}
/**
* 获取方法属性
* [@param](https://my.oschina.net/u/2303379) dtoObject
* [@param](https://my.oschina.net/u/2303379) attribute
* [@return](https://my.oschina.net/u/556800)
*/
public Object getAttribute(T dtoObject, String attribute) {
String getMethodName = "get" + attribute.substring(0, 1).toUpperCase() + attribute.substring(1); // 将属性的首字符大写,方便构造get,set方法
Object value = new ReflectFactory<T>()
.setObject(dtoObject)
.setMethodName(getMethodName)
.invoke();
return value;
}
/**
* 设置方法属性
* @param object
* @param attribute
* @param value
*/
public void setAttribute(T object, String attribute, Object value) {
String getMethodName = "get" + attribute.substring(0, 1).toUpperCase() + attribute.substring(1); // 将属性的首字符大写,方便构造get,set方法
Object attributeValue = new ReflectFactory<T>()
.setObject(object)
.setMethodName(getMethodName)
.invoke();
if(attributeValue == null){
String setMethodName = "set" + attribute.substring(0, 1).toUpperCase() + attribute.substring(1); // 将属性的首字符大写,方便构造get,set方法
new ReflectFactory<T>()
.setObject(object)
.setMethodName(setMethodName)
.setParameterTypes(value.getClass())
.setParameter(value)
.invoke();
}
}```
扩展字段
猜你喜欢
转载自my.oschina.net/zhangshsURL/blog/1788442
今日推荐
周排行