最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用@NonNull注解遇到的小問(wèn)題及解決

 更新時(shí)間:2023年01月06日 14:48:51   作者:這小呆  
這篇文章主要介紹了使用@NonNull注解遇到的小問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

使用@NonNull注解遇到問(wèn)題

先簡(jiǎn)單介紹一下NotNull和NonNull的差異

  • @NotNull 是 JSR303(Bean的校驗(yàn)框架)的注解,用于運(yùn)行時(shí)檢查一個(gè)屬性是否為空,如果為空則不合法。
  • @NonNull 是JSR 305(缺陷檢查框架)的注解,是告訴編譯器這個(gè)域不可能為空,當(dāng)代碼檢查有空值時(shí)會(huì)給出一個(gè)風(fēng)險(xiǎn)警告,目  前這個(gè)注解只有IDEA支持。

下面進(jìn)入主題

我在使用@NonNull時(shí)遇到的小bug:

@NonNull注解的對(duì)象  在其形成無(wú)參構(gòu)造函數(shù)時(shí),此注解不會(huì)默認(rèn)形成無(wú)參構(gòu)造器(問(wèn)題就出在這兒)

 例:

 (1)ParameterVO.java中加了NonNull注解

@Data?
public class ParameterVO implements Serializable{
? ? ?@NonNull?
? ? ?private String saasId;
?}

編譯后的class文件中(不會(huì)生成無(wú)參構(gòu)造函數(shù)):

public class ParameterVO implements Serializable{?
? ? @NonNull?
? ? private String saasId;
? ?
? ? @NonNull ??
? ? public String getSaasId() { ??
? ? ? return this.saasId; ??
?} ? ?
? ? .......?
}

(2) ParameterVO.java中倘若沒(méi)有加上@NonNull注解

@Data?
public class test implements Serializable{ ?
? ? private String saasId;?
}

對(duì)應(yīng)所編譯后的class文件(可以自動(dòng)生成無(wú)參構(gòu)造函數(shù)):

public class test implements Serializable{ ?
? ? private String saasId; ??
?
? ? public test(){} ?
? ? .......?
}

 (3)解決方法: 此類情況,在ParameterVO.java中加一個(gè)注解@NoArgsConstructor

@Data?
@NoArgsConstructor?
public class ParameterVO implements Serializable{ ?
? ? @NonNull ?
? ? private String saasId;?
}

這樣的話,就可以解決掉因?yàn)樽⒔釦NonNull導(dǎo)致的沒(méi)有生成無(wú)參構(gòu)造函數(shù)的問(wèn)題!

Lombok @NonNull注解

普通的 POJO 需要寫或是用IDEA等集成開發(fā)環(huán)境生成大量gettter, setter方法

普通的 POJO 對(duì)于 equals 和 hashCode 等方法,也需要自己維護(hù)。特別你寫接口的時(shí)候,如果添加了 一個(gè)字段忘了維護(hù),可能會(huì)導(dǎo)致一些bug

為此Lombok誕生了 它可以簡(jiǎn)化你的代碼,讓你的POJO看起來(lái)更加地清爽(可以只有類名和字段的聲明,加上少量的注解)

@NonNull注解用來(lái)判斷項(xiàng)目中的字段是否為空,為空拋出異常

public class NonNullAnnotation {

? ? @NonNull
? ? @Setter
? ? @Getter
? ? private List<Student> members;
? ? public static void main(String[] args) {
? ? ? ? NonNullAnnotation test = new NonNullAnnotation();
? ? ? ? test.setMembers(null);
? ? ? ? //test.getMembers();
? ? }
}

總結(jié)

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

相關(guān)文章

  • spring boot 配置freemarker及如何使用freemarker渲染頁(yè)面

    spring boot 配置freemarker及如何使用freemarker渲染頁(yè)面

    springboot中自帶的頁(yè)面渲染工具為thymeleaf 還有freemarker這兩種模板引擎,本文重點(diǎn)給大家介紹spring boot 配置freemarker及如何使用freemarker渲染頁(yè)面,感興趣的朋友一起看看吧
    2023-10-10
  • Java如何實(shí)現(xiàn)多個(gè)線程之間共享數(shù)據(jù)

    Java如何實(shí)現(xiàn)多個(gè)線程之間共享數(shù)據(jù)

    這篇文章主要介紹了Java如何實(shí)現(xiàn)多個(gè)線程之間共享數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • 通過(guò)JWT來(lái)解決登錄認(rèn)證問(wèn)題的方案

    通過(guò)JWT來(lái)解決登錄認(rèn)證問(wèn)題的方案

    Json web token (JWT),是為了在網(wǎng)絡(luò)應(yīng)用環(huán)境間傳遞聲明而執(zhí)行的一種基于JSON的開放標(biāo)準(zhǔn)((RFC7519),該token被設(shè)計(jì)為緊湊且安全的,特別適用于分布式站點(diǎn)的單點(diǎn)登錄(SSO)場(chǎng)景,本文給大家介紹了如何通過(guò) JWT 來(lái)解決登錄認(rèn)證問(wèn)題,需要的朋友可以參考下
    2024-12-12
  • Java使用connectTo方法提高代碼可續(xù)性詳解

    Java使用connectTo方法提高代碼可續(xù)性詳解

    這篇文章主要介紹了Java使用connectTo方法提高代碼可續(xù)性,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • java 開發(fā)使用字符串和數(shù)字的性能分析

    java 開發(fā)使用字符串和數(shù)字的性能分析

    這篇文章主要介紹了java 開發(fā)使用字符串和數(shù)字的性能分析的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • RestTemplate文件上傳下載與大文件流式下載

    RestTemplate文件上傳下載與大文件流式下載

    這篇文章主要為大家介紹了RestTemplate文件上傳下載與大文件流式下載的使用方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助祝大家多多進(jìn)步
    2022-03-03
  • Java手動(dòng)配置線程池過(guò)程詳解

    Java手動(dòng)配置線程池過(guò)程詳解

    這篇文章主要介紹了Java手動(dòng)配置線程池過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-05-05
  • Mybatis-Plus或PageHelper多表分頁(yè)查詢總條數(shù)不對(duì)問(wèn)題的解決方法

    Mybatis-Plus或PageHelper多表分頁(yè)查詢總條數(shù)不對(duì)問(wèn)題的解決方法

    PageHelper 這個(gè)插件用了很多次了,今天使用的時(shí)候才遇到一個(gè)問(wèn)題,這篇文章主要給大家介紹了關(guān)于Mybatis-Plus或PageHelper多表分頁(yè)查詢總條數(shù)不對(duì)問(wèn)題的解決方法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Java實(shí)現(xiàn)一鍵將Word文檔轉(zhuǎn)為PDF

    Java實(shí)現(xiàn)一鍵將Word文檔轉(zhuǎn)為PDF

    在開發(fā)中,經(jīng)常會(huì)碰到需要把 Word 文檔轉(zhuǎn)換成 PDF 格式的需求,Java 有不少好用的庫(kù)能實(shí)現(xiàn)這個(gè)功能,本文為大家介紹了兩個(gè)常用的方法,需要的可以了解下
    2025-02-02
  • 如何解決mybatis查詢結(jié)果接收不同的問(wèn)題

    如何解決mybatis查詢結(jié)果接收不同的問(wèn)題

    這篇文章主要介紹了如何解決mybatis查詢結(jié)果接收不同的問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09

最新評(píng)論

县级市| 沧源| 广河县| 甘德县| 石台县| 谢通门县| 龙海市| 台江县| 塔河县| 海兴县| 雷波县| 苗栗县| 谷城县| 娄底市| 黑龙江省| 武胜县| 岳池县| 新丰县| 凯里市| 乐山市| 广汉市| 中方县| 鱼台县| 柘荣县| 三门峡市| 鄂州市| 赞皇县| 交城县| 滦南县| 弥渡县| 车致| 温宿县| 邵阳市| 遂平县| 琼中| 贵州省| 绥化市| 阿尔山市| 台中县| 靖安县| 清原|