您的位置:首页 > 编程语言

为自己代码重构了一部分内容

2017-09-14 13:28 302 查看
因为需要为某个参数赋默认值但是又要保证接口的灵活调用,所以对部分参数都需要进行空值检查 不为空则赋初值


if (param.getParam().getOrgPath() == null ||
param.getParam().getOrgPath().equals("")) {
param.getParam().setOrgPath(find.get().getInnerCode()); }


后来发现写了太多这样的代码了  于是重构


/**
* 设置参数 如果param的某个filedName为空 则讲setFiled设置到filedName中
*
* @param param
*            需要被设置参数的对象
* @param filedName
*            需要被设置的参数名
* @param setFiled
*            需要被设置的参数
*/
private void setParam(Object param, String filedName, Object setFiled) throws NoSuchMethodException,
SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException {
String getMethodName = "get" + filedName.substring(0, 1).toUpperCase()
+ filedName.substring(1, filedName.length());
String setMethodName = "set" + filedName.substring(0, 1).toUpperCase()
+ filedName.substring(1, filedName.length());
Class<?> clazz = param.getClass();
Method getMethod = clazz.getMethod(getMethodName, null);
Method setMethod = clazz.getMethod(setMethodName, setFiled.getClass());
Object obj = getMethod.invoke(param, null);
if (obj == null || StringUtils.isEmpty(obj.toString())) {
setMethod.invoke(param, setFiled);
}
}


这样的话我就只用写一句了


setParam(param.getParam(), "orgPath", find.get().getInnerCode());
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐