通过Java反射处理对象的属性 £神魔★判官ぃ 2022-04-18 01:51 282阅读 0赞 我这边工作中有个需求要求String类型的字段入库是去掉空格,我想到了两种方式处理 1.第一种是在实体类中的set方法中处理,这种方法我就不说了 2.第二种是通过反射处理对象的属性,废话不多说放上代码 public static Object stringTrim(Object model) { if(model==null){ return model; } try { Object newObject=new Object(); newObject=model; Class cls = newObject.getClass(); //获取所有属性 Field[] declaredFields = cls.getDeclaredFields(); for (int i = 0; i < declaredFields.length; i++) { Field declaredField = declaredFields[i]; //打开私有属性操作权限 declaredField.setAccessible(true); //获取属性名称 String name = declaredField.getName(); //获取属性的类型 Class<?> type = declaredField.getType(); //获取类型的名称 String simpleName = type.getSimpleName(); //如果是String类型则去空格 if (("String").equals(simpleName)) { //获取该属性的值 String str = (String) declaredField.get(newObject); str = str == null ? str : str.replace(" ",""); //去空格后重新赋值 declaredField.set(newObject, str); } } return newObject; } catch (Exception e) { log.error("stringTrim error,Exception:{}",e); return model; } }
还没有评论,来说两句吧...