国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專(zhuān)注于服務(wù)器技術(shù)及軟件下載分享
分類(lèi)導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - JavaBean字段如何防止非空賦值

JavaBean字段如何防止非空賦值

2021-12-10 12:57HealerJean. Java教程

這篇文章主要介紹了JavaBean字段如何防止非空賦值的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

JavaBean字段防止非空賦值

前言

工具類(lèi)制作起因,有時(shí)候項(xiàng)目中出一點(diǎn)點(diǎn)錯(cuò)誤,在所難免,經(jīng)常,有些地方的字段是String,但是到了其他地方是Long,Date,Interger,BigDecimal,這個(gè)時(shí)候每次都需要判斷下是否為空,否則就會(huì)在New BigDecimal(string)等中轉(zhuǎn)化失敗,報(bào)空指針。 如果字段很多,簡(jiǎn)直太惡心了。

這里日期是最?lèi)盒男模掌诜譃镈ate類(lèi)型和String類(lèi)型 轉(zhuǎn)化為Date

舉例

?
1
2
3
if(string!=null){
   date.setBigValue(new BigDecimal(string));
 }

1、JavaBean制作

1.1、初始JavaBean User

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class User {
 /**
     * 如果屬性類(lèi)型為基本數(shù)據(jù)類(lèi)型,則會(huì)有默認(rèn)值
     * 影響正確判斷,請(qǐng)?zhí)貏e注意
     */
//  private int age;
    private Integer age;
    private String name;
    private String gender;
    private BigDecimal bigDecimal;
    private Date date ;
    private Long longvalue;   
    private String dateStr ; //注意這里是String類(lèi)型的日期 例如 2018-12-09 00:00:00
    get set……

1.2、被賦值的JavaBean

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
 * 作者 :HealerJean
 * 日期 :2018/12/13  上午11:03.
 * 類(lèi)描述:
 */
public class UserNow {
    private String nameNow;
    private String genderNow;
    private Integer ageNow;
    private BigDecimal bigDecimalNow ;
    private Date dateNow ;
    private Long longvalueNow;
    private Date dateStrNow ; //注意這里是Date類(lèi)型
get set……

2、利用反射實(shí)現(xiàn)工具類(lèi)

需要注意的是,下面的日期,在我們通過(guò)反射獲取到值的時(shí)候,它打印出來(lái)的是英文日期串,我們需要對(duì)他進(jìn)行一個(gè)轉(zhuǎn)化

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
package com.hlj.IgnoreNullBean;
import org.junit.platform.commons.util.StringUtils;
import java.lang.reflect.Field;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
/**
 * 作者 :HealerJean
 * 日期 :2018/12/13  上午10:55.
 * 類(lèi)描述 防止非空字段,在類(lèi)似于 new BigDecimal(string))中進(jìn)行報(bào)錯(cuò)
 */
public class JavaBeanUtil {
    /**
     *
     * @param object 原始數(shù)據(jù)JavaBean
     * @param originFieldName 原始數(shù)據(jù) 字段名字 比如:name
     * @param newObject 新復(fù)制的JavaBean
     * @param newFilldName 新賦值的字段名字 比如 nameNow
     * @param dateFormat 如果是date類(lèi)型的日期,
     *                   1、傳入的是String字符串'2018-12-09'   則需要傳入相應(yīng)Fromat格式 yyyy-MM-dd HH:mm:ss
     *                   2、如果是標(biāo)準(zhǔn)高的date類(lèi)型,那么.toString之后是 -> Fri Dec 14 19:00:07 CST 2018, 則設(shè)置為null
     */
    public static  void setFieldValue(Object object,String originFieldName,Object newObject,String newFilldName,String ...dateFormat) {
        try {
            Field field = object.getClass().getDeclaredField(originFieldName);
            field.setAccessible(true);
            Field newfield = newObject.getClass().getDeclaredField(newFilldName);
            newfield.setAccessible(true);
            String newfieldType=newfield.getGenericType().toString();
            if (field.get(object) != null && StringUtils.isNotBlank(field.get(object).toString())) {
                String value = field.get(object).toString();
                System.out.println(value);
                switch (newfieldType){
                    case "class java.lang.Integer":
                        newfield.set(newObject, Integer.valueOf(value));
                        break;
                    case "class java.lang.Long":
                        newfield.set(newObject, Long.valueOf(value));
                        break;
                    case "class java.math.BigDecimal":
                        newfield.set(newObject, new BigDecimal(Double.valueOf(value)) );
                        break;
                    case "class java.util.Date":
                        Date  date = null;
                        if(dateFormat!=null&&dateFormat.length>0){
                            date = new SimpleDateFormat(dateFormat[0]).parse(value);
                            newfield.set(newObject, date);
                        }else {
                              date=new SimpleDateFormat("EEE MMM dd HH:mm:ss Z yyyy", Locale.UK).parse(value);
                        }
                        newfield.set(newObject, date);
                        break;
                    default:
                        break;
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

3、測(cè)試

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package com.hlj.IgnoreNullBean;
import com.hlj.IgnoreNullBean.data.User;
import com.hlj.IgnoreNullBean.data.UserNow;
import java.math.BigDecimal;
import java.util.Date;
/**
 * 作者 :HealerJean
 * 日期 :2018/12/13  上午10:54.
 * 類(lèi)描述:
 */
public class TestMain {
    public static void main(String[] args) {
        User user = new User();
        user.setAge(25);
        user.setBigDecimal(new BigDecimal(10.21));
        user.setDate(new Date());
        user.setLongvalue(100L);
        user.setDateStr("2018-12-09 00:00:00");
        UserNow userNow = new UserNow() ;
        JavaBeanUtil.setFieldValue(user,"age",userNow,"ageNow");
        System.out.println("ageNow:"+userNow.getAgeNow());
        JavaBeanUtil.setFieldValue(user,"bigDecimal",userNow,"bigDecimalNow");
        System.out.println("bigDecimalNow:"+userNow.getBigDecimalNow());
        JavaBeanUtil.setFieldValue(user,"date",userNow,"dateNow");
        System.out.println("dateNow:"+ userNow.getDateNow());
        JavaBeanUtil.setFieldValue(user,"longvalue",userNow,"longvalueNow");
        System.out.println("longvalueNow:"+userNow.getLongvalueNow());
        JavaBeanUtil.setFieldValue(user,"dateStr",userNow,"dateStrNow","yyyy-MM-dd HH:mm:ss");
        System.out.println("dateStrNow:"+userNow.getDateStrNow());
    }
ageNow:25
bigDecimalNow:10.21000000000000085265128291212022304534912109375
dateNow:Fri Dec 14 19:27:07 CST 2018
longvalueNow:100
dateStrNow:Sun Dec 09 00:00:00 CST 2018

判斷javabean是否非空,并給前臺(tái)報(bào)出錯(cuò)誤信息

1、工具類(lèi)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.duodian.youhui.admin.utils;
import com.duodian.youhui.admin.Exceptions.AppException;
import com.duodian.youhui.entity.db.taobao.TaobaoWechat;
import java.lang.reflect.Field;
/**
 * 作者 :HealerJean
 * 日期 :2019/1/24  下午4:30.
 * 類(lèi)描述:判斷是否為空 或者是null 工具
 */
public class JudgeNullUtils {
    public static boolean isNull(Object object,String ... fieldName){
        try {
            for (int i = 0; i < fieldName.length; i++) {
                Field field = null;
                    field = object.getClass().getDeclaredField(fieldName[i]);
                field.setAccessible(true);//暴力反射,獲取獲取數(shù)據(jù)
                if(field.get(object)==null){
                    //返回flase或者直接拋出異常,根據(jù)我們的情況而定
                    throw  new AppException(fieldName[i]+"不能為空");
                }
            }
            return true ;
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
        return false ;
    }
}

2、catch捕獲

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@ApiOperation(value = "添加淘寶營(yíng)銷(xiāo)總代理",
        notes = "添加淘寶營(yíng)銷(xiāo)總代理",
        consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE,
        produces = MediaType.APPLICATION_JSON_VALUE,
        response = ResponseBean.class
)
@ResponseBody
@GetMapping("addEsWechat")
public ResponseBean addEsWechat(TaobaoEsWechat taobaoWechat ){
    try {
        JudgeNullUtils.isNull(taobaoWechat,"code","status");
        return ResponseBean.buildSuccess(taobaoEsWechatService.addTaobaoEsWechat(taobaoWechat));
    } catch (AppException e) {
        ExceptionLogUtils.log(e, this.getClass());
        return ResponseBean.buildFailure(e.getCode(),e.getMessage());
    } catch (Exception e) {
        ExceptionLogUtils.log(e, this.getClass());
        return ResponseBean.buildFailure(e.getMessage());
    }
}

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持服務(wù)器之家。

原文鏈接:https://blog.csdn.net/u012954706/article/details/84985935

延伸 · 閱讀

精彩推薦
  • Java教程Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫(xiě)文件寫(xiě)不進(jìn)去或缺失數(shù)據(jù)的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程20個(gè)非常實(shí)用的Java程序代碼片段

    20個(gè)非常實(shí)用的Java程序代碼片段

    這篇文章主要為大家分享了20個(gè)非常實(shí)用的Java程序片段,對(duì)java開(kāi)發(fā)項(xiàng)目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學(xué)習(xí)使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程Java實(shí)現(xiàn)搶紅包功能

    Java實(shí)現(xiàn)搶紅包功能

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)搶紅包功能,采用多線(xiàn)程模擬多人同時(shí)搶紅包,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程xml與Java對(duì)象的轉(zhuǎn)換詳解

    xml與Java對(duì)象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對(duì)象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
  • Java教程Java8中Stream使用的一個(gè)注意事項(xiàng)

    Java8中Stream使用的一個(gè)注意事項(xiàng)

    最近在工作中發(fā)現(xiàn)了對(duì)于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個(gè)非常重要的注意點(diǎn),所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
  • Java教程升級(jí)IDEA后Lombok不能使用的解決方法

    升級(jí)IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級(jí),尋思已經(jīng)有好久沒(méi)有升過(guò)級(jí)了。升級(jí)完畢重啟之后,突然發(fā)現(xiàn)好多錯(cuò)誤,本文就來(lái)介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 热久久久久| 亚洲免费看片 | jlzzjlzz亚洲日本少妇 | 欧美精品一区二区在线观看 | 日本成人片网站 | 久久久国产精品一区 | 精品一级| 久久久久国产一级毛片高清片 | 久久成人免费视频 | 欧美精品在线一区 | 欧美视频在线看 | 中文字幕亚洲一区 | 日日韩av| 欧美成人二区 | 综合久久综合久久 | 欧美一区二区三区免费 | 国产精品videosex极品 | 国产成人亚洲精品 | 欧美成人免费网站 | 亚洲精品国产一区 | 亚洲bbw | 天天躁人人躁人人躁狂躁 | 免费在线一区二区 | www一区二区 | 高清av一区 | 久久久久久久国产精品视频 | 一区二区三区四区在线 | 亚洲国产成人精品女人久久久 | 国产成人精品综合 | 免费一级片 | 99爱视频| 欧美国产日韩在线 | 亚洲免费视频观看 | 成人看的免费视频 | 日韩欧美h| 国产精品久久久久一区二区三区 | 日韩精品久久久 | 日韩欧美一区二区在线观看视频 | 精品久久久中文字幕 | 久久久久久久国产精品 | 91在线影院 |