中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何使用JavaBean根據指定條件設置屬性值默認值

發布時間:2022-03-02 14:34:20 來源:億速云 閱讀:323 作者:iii 欄目:開發技術

這篇“如何使用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根據指定條件設置屬性值默認值”這篇文章的內容,相信大家都有了一定的了解,希望小編分享的內容對大家有幫助,若想了解更多相關的知識內容,請關注億速云行業資訊頻道。

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    揭西县| 屏南县| 禹州市| 吉木萨尔县| 丰宁| 温泉县| 山阴县| 宕昌县| 武汉市| 黎川县| 和顺县| 广汉市| 呼伦贝尔市| 南部县| 新绛县| 宁都县| 大方县| 叶城县| 肥乡县| 金华市| 华容县| 留坝县| 阿图什市| 明水县| 颍上县| 壤塘县| 海口市| 防城港市| 兴义市| 驻马店市| 杭锦旗| 库伦旗| 普宁市| 闽清县| 镇坪县| 南川市| 龙游县| 洱源县| 长汀县| 会泽县| 木兰县|