自定义对象属性为空自动转换为字符串

/**
	 * 
	 *  将对象属性的null值转换为""
	 *  @param obj
	 *  		转换对象
	 *  @author jianye@iflytek.com
	 */
	@SuppressWarnings({ "rawtypes", "unchecked" })
	public static void nullConverNullString(Object obj){
		//非空开始转换
		if(null != obj){
			//获取该对象的类
			Class classz = obj.getClass();
			//获取该对象的所有属性
			Field[] fields = classz.getFields();
			
			//遍历属性值,取得所有属性值为null的属性
			for (Field field : fields) {
				try{
					//获取属性类型
					Type type = field.getGenericType();
					//排除类型为Boolean的属性
					if(!type.toString().equals("boolean")){
						//获取get方法
						Method method = classz.getMethod("get"+change(field.getName()));
						//调用get方法获取值
						Object fieldValue = method.invoke(obj);
						//为空处理
						if(null == fieldValue){
							//获取set方法,进行设值(值的类型需要确定)
							Method setMethod = classz.getMethod("set"+change(field.getName()), new Class[]{String.class});
							//调用set方法
							setMethod.invoke(obj, new Object[]{""});
						}
					}
				}catch (Exception e) {
					e.printStackTrace();
				}
			}
			
		}
	}
	
	/**
	 * 
	 *  {说明该函数的含义和作用,如果函数较为复杂,请详细说明}
	 *  @return
	 *  @author jianye@iflytek.com
	 */
	public static String change(String src){
		if(StringUtils.isNotBlank(src)){
			StringBuffer orig = new StringBuffer(src);
			//将首字母转换为大写
			orig.setCharAt(0, Character.toUpperCase(orig.charAt(0)));
			//返回结果集
			return orig.toString();
		}
		return null;
	}
	

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页