今天在写mybatis的映射时候考虑到了这么一点,如果前面给我传过来一个空字符串怎么办,我在网上没有查到对应的映射文件怎么写,所以自己写一个util来处理这种情况。(lombok应该能处理这种情况,但是小组成员没有几个用的)。
用成员变量加反射完成get与set操作
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| import java.lang.reflect.Field; import java.lang.reflect.Method;
public class ObjectBlank {
public static void objectBlank(Object obj) throws Exception { synchronized (obj.getClass()) { Class bean = obj.getClass(); Field[] fs = bean.getDeclaredFields(); for (int i = 0; i < fs.length; i++) { String fieldName = fs[i].getName(); StringBuilder sb = new StringBuilder(fieldName); String firstWord = sb.substring(0,1); sb.delete(0,1); StringBuilder methodName = sb.insert(0, firstWord.toUpperCase()); StringBuilder tmpmethodName = new StringBuilder(methodName); StringBuilder getName = methodName.insert(0,"get"); Method getter = bean.getMethod(getName.toString());
Object ans = getter.invoke(obj); if (ans != null && "".equals(ans.toString().trim())) { StringBuilder setName = tmpmethodName.insert(0,"set"); String NULL = null; bean.getMethod(setName.toString(),fs[i].getType()). invoke(obj,NULL); } } } } }
|
第一次写这种底层东西,不知道会有什么问题。