对实体类的所有String类型的成员变量值trim
使用反射,可以对实体类中的所有String类型的成员变量的值执行trim操作
(1)trim
/**** 对object中的所有成员变量的值,执行trim操作<br>* 即去掉首尾的空格* @param obj* @throws SecurityException* @throws NoSuchFieldException* @throws IllegalArgumentException* @throws IllegalAccessException*/public static void trimObject(Object obj) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException{if(obj==null){return;}List<Field> fieldsList =getAllFieldList(obj.getClass());for(int i=0;i<fieldsList.size();i++){Field f=fieldsList.get(i);Object vObj=getObjectValue(obj,f );if(f.getType().getName().equals("java.lang.String") && (vObj instanceof String) ){String str=(String)vObj;if(str!=null){str=str.trim();f.setAccessible(true);f.set(obj, str);}}}}
应用场景
// 是否清除成员变量的值前后的空格boolean isTrim2=false;String isTrim22Str=DictionaryParam.get(Constant2.DICTIONARY_GROUP_GLOBAL_SETTING,"is_trim_columnValue");if(!ValueWidget.isNullOrEmpty(isTrim22Str)){isTrim2=Boolean.parseBoolean(isTrim22Str);}if(isTrim2&&user!=null){try {ReflectHWUtils.trimObject(user);} catch (SecurityException e) {e.printStackTrace();} catch (NoSuchFieldException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}}
(2)把值为空字符串的成员变量设置为null
/**** 把对象中空字符串改为null* @param obj : 要修改的对象:java bean* @param isTrim : 是否清除成员变量的值前后的空格* @throws SecurityException* @throws NoSuchFieldException* @throws IllegalArgumentException* @throws IllegalAccessException*/public static void convertEmpty2Null(Object obj,boolean isTrim) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException{if(obj==null){return;}List<Field> fieldsList =getAllFieldList(obj.getClass());for(int i=0;i<fieldsList.size();i++){Field f=fieldsList.get(i);Object vObj=getObjectValue(obj,f );if(f.getType().getName().equals("java.lang.String") && (vObj instanceof String) ){String str=(String)vObj;if(isTrim){//清除首尾的空格if(str!=null){str=str.trim();}}if(SystemHWUtil.EMPTY.equals(str)){
// System.out.println(f.getName());
// System.out.println(f.getType().getName());f.setAccessible(true);f.set(obj, null);}else{if(isTrim){//清除首尾的空格f.setAccessible(true);f.set(obj, str);}}}}}/**** 不trim* @param obj* @throws SecurityException* @throws NoSuchFieldException* @throws IllegalArgumentException* @throws IllegalAccessException*/public static void convertEmpty2Null(Object obj) throws SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException{if(obj==null){return;}convertEmpty2Null(obj, false/* isTrim */);}
应用场景:
// 是否清除成员变量的值前后的空格boolean isTrim2=false;String isTrim22Str=DictionaryParam.get(Constant2.DICTIONARY_GROUP_GLOBAL_SETTING,"is_trim_columnValue");if(!ValueWidget.isNullOrEmpty(isTrim22Str)){isTrim2=Boolean.parseBoolean(isTrim22Str);}try {//把对象中空字符串改为nullReflectHWUtils.convertEmpty2Null(ordersDetail,isTrim2);if(!ValueWidget.isNullOrEmpty(ordersDetail.getToothOrders())){ReflectHWUtils.convertEmpty2Null(ordersDetail.getToothOrders(),isTrim2);//不需要再set一遍}if(!ValueWidget.isNullOrEmpty(ordersDetail.getProducts())){ReflectHWUtils.convertEmpty2Null(ordersDetail.getProducts(),isTrim2);//不需要再set一遍}} catch (SecurityException e) {e.printStackTrace();} catch (NoSuchFieldException e) {e.printStackTrace();} catch (IllegalArgumentException e) {e.printStackTrace();} catch (IllegalAccessException e) {e.printStackTrace();}
转载于:https://blog.51cto.com/huangkunlun520/1599348
对实体类的所有String类型的成员变量值trim相关推荐
- java vo转map_javabean实体类对象转为Map类型对象的方法(转发)
//将javabean实体类转为map类型,然后返回一个map类型的值 public static Map beanToMap(Object obj) { Map params = new HashM ...
- 使用 MyBatis 实体类里的 Double 类型查询不到值
使用 MyBatis 实体类里的 double 类型查询不到值.查询实体类时,里面的 Integer 和 String 类型都可以查询到,update 各个属性也都可以修改成功. 因为 MyBatis ...
- java成员变量默认是_在Java语言中,String类型的成员变量的默认初始值是( )
在Java语言中,String类型的成员变量的默认初始值是( ) 答:C.null 学生最主要的权利是() 答:受教育权 提倡教育要适合孩子的 "敏感期"的教育家是 答:蒙台梭利 ...
- 将任意一个对象中的所有String类型的成员变量所对应的字符串内容中的“a“改为“b“(封装成一个方法)
import java.lang.reflect.Field;public class test06 {/** 将任意一个对象中的所有String类型的成员变量所对应的字符串内容中的"a&q ...
- javabean实体类对象转为Map类型对象的方法
//将javabean实体类转为map类型,然后返回一个map类型的值 public static Map<String, Object> beanToMap(Object obj) { ...
- 实体类与数据库字段类型
实体类 /*实体类*/ @Column(precision = 12, scale = 3) private BigDecimal rate; //数据库字段类型 rate decimal(12,3) ...
- JAVA实体类不要使用基本类型,基本类型包含byte、int、short、long、float、double、char、boolean...
由于JAVA的基本类型会有默认值,例如当某个类中存在private int age;字段时,创建这个类时,age会有默认值0.当使用age属性时,它总会有值.因此在某些情况下,便无法实现age为nu ...
- java string类api_java基础—String类型常用api
1.字符串比较 equals equalsIgnoreCase 忽略大小写做比较 2.字符串拆分(切片) split String a = "lemon:python:Java" ...
- java日期用什么属性_java日期以及使用Java反射机制遍历实体类的属性和类型
fmt:formatDate 的输出格式 fmt关于时间格式的输出 2004-5-31 23:59:59 2004-4-1 23:59:59 JSTL标签fmt:formatDate引起的中文乱码问题 ...
最新文章
- linux软中断的实现
- 【Java萌新】MyBatis-Plus案例
- 前端学习(2309):react之同级传值
- Bootstrap表单的默认布局
- Python机器学习:KNN算法之01KKN基础
- Kali Linux 网络扫描秘籍 第三章 端口扫描(一)
- ajaxfileupload 监听上传进度_一篇文章学会文件上传
- datatable自定义表单或者导出excel按钮,搜索
- 基于树莓派的sht20温湿度传感器应用(c语言)
- 更改适配器设置无法和计算机连接,win10系统更改适配器没有无线网络连接的设置技巧...
- java版溺尸刷怪塔_教程/溺尸陷阱 _ 《我的世界》中文Minecraft Wiki:最详细的官方我的世界百科...
- Warning: findDOMNode is deprecated in StrictMode
- android界面不显示,Android 可视化界面编辑器无法显示界面问题的终极解决方案
- 使用联想计算节点的方法整理
- 低版本cad如何打开高版本图纸?不用升级软件也可以搞定
- wps高亮怎么取消_一组WPS表格小技巧,简单实用
- 默默前行的livego--基于go语言的rtmp直播服务器
- Unable to prepare *** iPhone for development
- Ymir平台部署安装
- 艾司博讯:拼多多退店要多久才能开
热门文章
- docker卸载命令_使用docker完成生信分析环境搭建
- 重装系统找不到固态_重装系统时找不到固态
- java移动端接口测试_移动端质量体系之性能测试(上)
- 数学建模 随机动态规划
- GT Transceiver的复位与初始化(4)RX初始化和复位流程
- Verilog初级教程(3)Verilog 数据类型
- word转pdf后公式出现乱码怎么办?
- 【 Notes 】WLLS Algorithm of TOA - Based Positioning (include the two - step WLS estimator)
- 面试题编程题06-python 输入一个字符串,反转输出
- Vimium - 让Chrome高效工作的神器