java null 转空_java 对象属性为 null 值转为 空串

相信大家一定在开发中见过并且写过类似这样的代码: public Book getBook(int id) { if (id < 0) { return null; } return new Book(1, "Design Pattern", 100); } Book book = getBook(-1); if (book != null) {

/**

* 把 VO 中所有属性为 null 的转为 ""

*

* @throws ApplicationException

*/

public void nullConverNullString(Object obj) throws ApplicationException {

if (obj != null) {

Class classz = obj.getClass();

// 获取所有该对象的属性值

Field fields[] = classz.getDeclaredFields();

// 遍历属性值,取得所有属性为 null 值的

for (Field field : fields) {

try {

Type t = field.getGenericType();

if (!t.toString().equals("boolean")) {

Method m = classz.getMethod("get"

+ change(field.getName()));

Object name = m.invoke(obj);// 调用该字段的get方法

if (name == null) {

Method mtd = classz.getMethod("set"

+ change(field.getName()),

new Class[] { String.class });// 取得所需类的方法对象

mtd.invoke(obj, new Object[] { "" });// 执行相应赋值方法

}

}

} catch (Exception e) {

e.printStackTrace();

throw new ApplicationException(

"PAYMENTS",

"nullConverNullString error: null conver null String error .",

e);

}

}

}

}

/**

* @param src

*            源字符串

* @return 字符串,将src的第一个字母转换为大写,src为空时返回null

*/

public static String change(String src) {

if (src != null) {

StringBuffer sb = new StringBuffer(src);

sb.setCharAt(0, Character.toUpperCase(sb.charAt(0)));

return sb.toString();

} else {

return null;

}

}


版权声明:本文为weixin_42309293原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。