如何使用JavaBean根据指定条件设置属性值默认值
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇"如何使用JavaBean根据指定条件设置属性值默认值"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面
千家信息网最后更新 2025年01月18日如何使用JavaBean根据指定条件设置属性值默认值
这篇"如何使用JavaBean根据指定条件设置属性值默认值"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"如何使用JavaBean根据指定条件设置属性值默认值"文章吧。
JavaBean根据指定条件设置属性值默认值
使用场景
当bean数据中已经装配好其他数据,在逻辑以及数据转换完成的最后一步进行数据默认值设置;如果bean的属性较少,可以手动写if条件就行了,如果bean的属性太多,你不希望写太多if的时候,这个方法是很不错的方法;
使用范围
仅限于当前类,不能给父类设置值
也是参考了其他博主的方法,做的优化和修改,由于时间过了很长,找不到原博主的参考文献了,请见谅~
/** * @Description: 根据条件,为bean设置默认指定属性 * @param sourceObject 当前需要操作的实体类 * @param targetString 需要被替换的属性的值 * @param defaultValue 被替换的值 * @return: void * @Author: * @Date: 2021/4/26*/ public static void setDefaultValue(Object sourceObject, String targetString, String defaultValue) { if (sourceObject != null) { try { Class> clazz = sourceObject.getClass(); Field[] fields = clazz.getDeclaredFields(); Object objectCopy = clazz.getConstructor(new Class[]{}).newInstance(); org.springframework.beans.BeanUtils.copyProperties(sourceObject, objectCopy); for (Field field : fields) { //修饰符 int mod = field.getModifiers(); if (Modifier.isStatic(mod)) { continue; } //属性名称 String fieldName = field.getName(); if (fieldName.equals("serialVersionUID")) { continue; } // 获得属性的首字母并转换为大写,与setXXX对应 String firstLetter = fieldName.substring(0, 1).toUpperCase(); String setMethodName = "set" + firstLetter + fieldName.substring(1); //设置属性的可访问标识 boolean accessible = field.isAccessible(); // log.info("可访问标识:"+accessible); field.setAccessible(true); Method setMethod = clazz.getMethod(setMethodName, field.getType()); Object fieldValueO =field.get(sourceObject); if (targetString!=null){ if (fieldValueO instanceof String){ String fieldValue = (String) field.get(sourceObject); if (targetString.equals(fieldValue)){ setMethod.invoke(objectCopy, defaultValue);//调用对象的setXXX方法 } } }else { Object o = field.get(sourceObject); if (o==null){ setMethod.invoke(objectCopy, defaultValue);//调用对象的setXXX方法 } } field.setAccessible(accessible); } org.springframework.beans.BeanUtils.copyProperties(objectCopy, sourceObject); } catch (Exception e) { throw new RuntimeException(e); } } }
使用示例
setDefaultValue(sourceObject, null, "");//属性值为null的时候设置默认值为空串setDefaultValue(sourceObject," null", "");//属性值为"null"字符串的时候设置为空串
JavaBean对象成员变量默认值及数组默认值
public class StudentTest { private int id; private String name; int[] arr; public int[] getArr() { return arr; } public void setArr(int[] arr) { this.arr = arr; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }}public class guanxiaokun { public static void main(String[] args) { //对于javaBean对象的成员变量,都有默认值,如果成员变量是基本类型int 默认值为0,如果是引用类型,其默认值为null //数组对象,如果没有进行静态初始化,数组对象其每一个索引位置,如果是存储基本类型,默认值为0,如果存储引用类型,默认值就为null System.out.println(new StudentTest().getId());//0 System.out.println(new StudentTest().getName());//null System.out.println(new StudentTest().getArr());//null int[] arr = new int[3]; String[] str = new String[3]; System.out.println(arr[0]);//0 System.out.println(str[0]);//null }}
以上就是关于"如何使用JavaBean根据指定条件设置属性值默认值"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
属性
条件
对象
内容
方法
数据
类型
变量
成员
数组
时候
文章
标识
知识
空串
篇文章
参考
存储
不错
价值
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
山西家用软件开发代理价格
什么情况下需要用到阿里云服务器
应该去哪里申请软件开发
中国网络技术公司的电话号码
移动视频网络技术研究中心
单位网络安全自查反馈
服务器练习
安徽合肥软件开发公司
苏亚星目前没有可登录的服务器
关网络安全法全文 新华网
加强网络安全管理工作计划
南大网络安全学院研究生
北邮网络安全大类
网络安全法何时开始实施的
软件开发都有哪些部门
研发软件开发套件有必要吗
单片机测试软件开发
微信老提示数据库损坏
软件开发追加协议
赶享链接不到服务器
网络安全 高职院校
网络技术是前端还是后端教程
软件开发模版好用吗
虹口区网络软件开发协议
数据库数仓
2016数据库份额
上海dns服务器地址
云服务器 安全组
未来网络技术对教育的影响
安徽数据网络技术推广