object 工具类 判断实体中属性值是否都为空 将实体Stirng类型为null的值替换
来源:互联网 发布:动态桌面壁纸软件 编辑:程序博客网 时间:2024/06/05 16:22
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import org.apache.commons.lang.StringUtils;
import com.wangyin.commons.util.Logger;
import com.wangyin.commons.util.LoggerFactory;
/**
* object 工具类
* <ul>
* <li>1、开发日期:2014年9月26日</li>
* <li>2、开发时间:下午4:44:12</li>
* <li>3、作 者:WangJun</li>
* <li>4、类型名称:ObjectUtils</li>
* <li>5、类型意图:</li>
* </ul>
*
*/
public class ObjectUtils {
private static final Logger logger = LoggerFactory.getLogger(ObjectUtils.class);
/**
* 判断实体中属性值是否都为空
* <ul>
* <li>1、开发日期:2014年8月13日</li>
* <li>2、开发时间:下午2:20:41</li>
* <li>3、作 者:WangJun</li>
* <li>4、返回类型:boolean</li>
* <li>5、方法含义:</li>
* <li>6、方法说明:</li>
* </ul>
*
* @param t 目标实体
* @param filterFields 需要判断属性名数组
* @return
*/
public <T> boolean valiObjectIsAllNull(T t, String[] filterFields)
{
boolean flag = true;
try
{
for (int i = 0; i < filterFields.length; i++)
{
if (StringUtils.isNotBlank(getFieldValueByName(filterFields[i], t).toString()))
{
flag = false;
break;
}
}
}
catch (Exception e)
{
logger.error("判断实体中属性值是否都为空异常" + e.getMessage());
}
return flag;
}
/**
* 根据属性名获取属性值
* */
public static Object getFieldValueByName(String fieldName, Object o)
{
try
{
String firstLetter = fieldName.substring(0, 1).toUpperCase();
String getter = "get" + firstLetter + fieldName.substring(1);
Method method = o.getClass().getMethod(getter, new Class[] {});
Object value = method.invoke(o, new Object[] {});
return value;
}
catch (Exception e)
{
logger.error("根据属性名获取属性值异常" + e.getMessage());
return null;
}
}
/**
* 将实体Stirng类型为null的值替换
* <ul>
* <li>1、开发日期:2014年9月28日</li>
* <li>2、开发时间:上午9:59:39</li>
* <li>3、作 者:WangJun</li>
* <li>4、返回类型:void</li>
* <li>5、方法含义:</li>
* <li>6、方法说明:</li>
* </ul>
*
* @param t 需要修改对象
* @param beans 通过 Object.class.getDeclaredFields()获取需要替换的属性数组 例如: Field[]
* beans = ApplicationVo.class.getDeclaredFields();
* @param toString 期望替换值
*/
public static <T> void nullConventsEmpty(T t, Field[] beans, String toString)
{
for (Field field : beans)
{
if (("String").equals(field.getType().getSimpleName()) && (ObjectUtils.getFieldValueByName(field.getName(), t) == null))
{
String firstLetter = field.getName().substring(0, 1).toUpperCase();
String setter = "set" + firstLetter + field.getName().substring(1);
try
{
@SuppressWarnings("rawtypes")
Class[] parameterTypes = new Class[1];// 这里你要调用的方法只有一个参数
parameterTypes[0] = String.class;// 这个参数的类型是String型的
Method method = t.getClass().getMethod(setter, parameterTypes);
try
{
method.invoke(t, new Object[] { toString });
}
catch (IllegalAccessException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
logger.error("将实体Stirng类型为null的值替换异常:" + e.getMessage(), e);
}
catch (IllegalArgumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
logger.error("将实体Stirng类型为null的值替换异常:" + e.getMessage(), e);
}
catch (InvocationTargetException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
logger.error("将实体Stirng类型为null的值替换异常:" + e.getMessage(), e);
}
}
catch (NoSuchMethodException e)
{
// TODO Auto-generated catc
logger.error("将实体Stirng类型为null的值替换异常:" + e.getMessage(), e);
e.printStackTrace();
}
catch (SecurityException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
logger.error("将实体Stirng类型为null的值替换异常:" + e.getMessage(), e);
}
}
}
}
/**
* 将实体Stirng类型为null的值替换
* <ul>
* <li>1、开发日期:2014年9月28日</li>
* <li>2、开发时间:上午9:59:39</li>
* <li>3、作 者:WangJun</li>
* <li>4、返回类型:void</li>
* <li>5、方法含义:</li>
* <li>6、方法说明:</li>
* </ul>
*
* @param t 需要修改对象
* @param beans 通过 Object.class.getDeclaredFields()获取需要替换的属性数组 例如: Field[]
* beans = ApplicationVo.class.getDeclaredFields();
* @param toString 期望替换值
*/
public static <T> void emptyConventsNull(T t, Field[] beans)
{
for (Field field : beans)
{
if (("String").equals(field.getType().getSimpleName()) && ("").equals(ObjectUtils.getFieldValueByName(field.getName(), t)))
{
String firstLetter = field.getName().substring(0, 1).toUpperCase();
String setter = "set" + firstLetter + field.getName().substring(1);
try
{
@SuppressWarnings("rawtypes")
Class[] parameterTypes = new Class[1];// 这里你要调用的方法只有一个参数
parameterTypes[0] = String.class;// 这个参数的类型是String型的
Method method = t.getClass().getMethod(setter, parameterTypes);
try
{
method.invoke(t, new Object[] { null });
}
catch (IllegalAccessException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
logger.error("将实体Stirng类型为null的值替换异常:" + e.getMessage(), e);
}
catch (IllegalArgumentException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
logger.error("将实体Stirng类型为null的值替换异常:" + e.getMessage(), e);
}
catch (InvocationTargetException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
logger.error("将实体Stirng类型为null的值替换异常:" + e.getMessage(), e);
}
}
catch (NoSuchMethodException e)
{
// TODO Auto-generated catc
logger.error("将实体Stirng类型为null的值替换异常:" + e.getMessage(), e);
e.printStackTrace();
}
catch (SecurityException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
logger.error("将实体Stirng类型为null的值替换异常:" + e.getMessage(), e);
}
}
}
}
}
0 0
- object 工具类 判断实体中属性值是否都为空 将实体Stirng类型为null的值替换
- 将实体类Bean转换为json对象的时候过滤null空值
- 判断一个实体对象是否真的为空
- Oracle中判断一个字段的值是否为0,如果为0则将0替换成空
- jquery的ajax中dataType="json",返回值判断是否为空,是否为null
- StringUtils 工具类中判断一个string类型的值是否为空的几种方法
- 利用Jexl输出造型为Object实体类的某个变量属性值
- 接口字段转实体是否为空判断
- java中判断对象中属性值是否为空
- C#三种判断数据库中取出的字段值是否为空(NULL) 的方法
- C#判断数据库中取出的字段值是否为空(NULL)
- javaweb实现自动将前端的属性值(HttpServletRequest)转化为后台对应的实体类
- JPA学习笔记---JPA实体Bean的建立---链接上一个博文:对实体Bean中属性进行操作:保存日期类型,设置字段的长度,名字,是否为空,可以声明枚举字段;可以存放二进制数据,可以存放
- Jquery 判断对象类型的值是否为空
- 判断object是否为空
- 去掉实体类中参数为STRING类型的属性的前后空格
- jackson 实体转json属性为NULL或者为空不参加序列化
- jackson 实体转json属性为NULL或者为空不参加序列化
- 【网络安全】移动软件逆向集成工具包Santoku
- 【Qt入门实践】数据库xml操作
- 结构体占内存大小计算
- <<Signals and systems>> Chapter 2 学习笔记
- 《CSS权威指南》计算机电子书下载
- object 工具类 判断实体中属性值是否都为空 将实体Stirng类型为null的值替换
- libgdx环境搭建及测试
- 触发器--再次出发
- css小技巧-Mozilla建议的CSS书写顺序
- 归并排序
- 美商婕斯的赋活青春精华露真的很厉害啊!!
- 谭浩强c语言教程大汇总有感
- 钩子与数据分析
- 成大事者必备的9种能力