iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >如何使用JavaBean根据指定条件设置属性值默认值
  • 141
分享到

如何使用JavaBean根据指定条件设置属性值默认值

2023-06-29 08:06:48 141人浏览 安东尼
摘要

这篇“如何使用JavaBean根据指定条件设置属性值默认值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用JavaBe

这篇“如何使用JavaBean根据指定条件设置属性值默认值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用JavaBean根据指定条件设置属性值默认值”文章吧。

    JavaBean根据指定条件设置属性值默认值

    使用场景

    当bean数据中已经装配好其他数据,在逻辑以及数据转换完成的最后一步进行数据默认值设置;如果bean的属性较少,可以手动写if条件就行了,如果bean的属性太多,你不希望写太多if的时候,这个方法是很不错的方法;

    使用范围

    仅限于当前类,不能给父类设置值

    也是参考了其他博主的方法,做的优化和修改,由于时间过了很长,找不到原博主的参考文献了,请见谅~

        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根据指定条件设置属性值默认值”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

    --结束END--

    本文标题: 如何使用JavaBean根据指定条件设置属性值默认值

    本文链接: https://www.lsjlt.com/news/323794.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • 如何使用JavaBean根据指定条件设置属性值默认值
      这篇“如何使用JavaBean根据指定条件设置属性值默认值”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“如何使用JavaBe...
      99+
      2023-06-29
    • 使用JavaBean根据指定条件设置属性值默认值方式
      目录JavaBean根据指定条件设置属性值默认值使用场景使用范围使用示例JavaBean对象成员变量默认值及数组默认值JavaBean根据指定条件设置属性值默认值 使用场景 当bea...
      99+
      2024-04-02
    • mysql数据库默认值如何设置
      在MySQL数据库中,可以使用DEFAULT关键字来设置默认值。 可以在创建表时,使用DEFAULT关键字来为列设置默认值,如下所示...
      99+
      2024-04-09
      mysql
    • javascript中如何设置和使用默认值
      本篇内容主要讲解“javascript中如何设置和使用默认值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“javascript中如何设置和使用默认值”吧!设置默认值在过去,为了设置函数参数的默认...
      99+
      2023-07-06
    • 怎么在@RequestParam中利用defaultValue属性设置默认值
      今天就跟大家聊聊有关怎么在@RequestParam中利用defaultValue属性设置默认值,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。@RequestParam使用defau...
      99+
      2023-06-06
    • 如何使用JavaScript动态设置CSS3属性值
      这篇文章将为大家详细讲解有关如何使用JavaScript动态设置CSS3属性值,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。使用JavaSc...
      99+
      2024-04-02
    • css如何设置含指定值的title属性的所有元素
      这篇文章主要介绍css如何设置含指定值的title属性的所有元素,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完! 属性和值决意器 - 多个值 下面的例子为收罗指定值的 title ...
      99+
      2024-04-02
    • PHP 函数可以使用默认参数值吗?如何设置?
      php 函数支持为参数设置默认值,简化代码并提高可读性。要设置默认值,在参数声明时进行分配。默认参数值只能在函数声明时设置,并必须位于未提供默认值的参数之后。一个函数可以混合使用带有默认...
      99+
      2024-04-17
      php 默认参数值
    • 如何设置MySQL数据库默认使用MyISAM?
      要设置默认存储引擎,请使用以下语法 -set @@default_storage_engine = ’yourEngineType’;现在将上述语法实现为将默认引擎设置为MyISAM。查询如下 −mysq...
      99+
      2023-10-22
    • css如何为包含指定值的title属性的所有元素设置样式
      小编给大家分享一下css如何为包含指定值的title属性的所有元素设置样式,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 属性...
      99+
      2024-04-02
    • 使用springboot如何实现获取配置文件中的属性值
      本篇文章给大家分享的是有关使用springboot如何实现获取配置文件中的属性值,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。在spring boot中,简单几步,读取配置文件...
      99+
      2023-05-31
      springboot 配置文件
    • Xamarin XAML语言中如何使用Progress属性数据绑定设置进度条进度
      这篇文章将为大家详细讲解有关Xamarin XAML语言中如何使用Progress属性数据绑定设置进度条进度,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。开发者除了可以为ProgressBar定义的Pro...
      99+
      2023-06-04
    • css如何使用单边外边距属性为元素单边上的外边距设置值
      这篇文章给大家分享的是有关css如何使用单边外边距属性为元素单边上的外边距设置值的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 可运用单边外边距属性为元素单边上的外边距设置装备...
      99+
      2024-04-02
    • Xamarin XAML语言中如何使用属性设置进度条的当前进度
      这篇文章主要为大家展示了“Xamarin XAML语言中如何使用属性设置进度条的当前进度”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Xamarin XAML语言中如何使用属性设置进度条的当前进...
      99+
      2023-06-04
    • 微信小程序如何使用slider设置数据值及switch开关组件功能
      这篇文章给大家分享的是有关微信小程序如何使用slider设置数据值及switch开关组件功能的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。具体如下:1、效果展示2、关键代码① i...
      99+
      2024-04-02
    • JAVA如何通过使用数组遍历和if条件实现选择数据中的最大值
      这篇文章给大家分享的是有关JAVA如何通过使用数组遍历和if条件实现选择数据中的最大值的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言:通过使用数组遍历和if条件实现选择数据中的最大值。public ...
      99+
      2023-06-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作