欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用@NonNull注解遇到的小問題及解決

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

使用@NonNull注解遇到問題

先簡單介紹一下NotNull和NonNull的差異

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

下面進入主題

我在使用@NonNull時遇到的小bug:

@NonNull注解的對象  在其形成無參構造函數時,此注解不會默認形成無參構造器(問題就出在這兒)

 例:

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

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

編譯后的class文件中(不會生成無參構造函數):

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

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

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

對應所編譯后的class文件(可以自動生成無參構造函數):

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

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

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

這樣的話,就可以解決掉因為注解@NonNull導致的沒有生成無參構造函數的問題!

Lombok @NonNull注解

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

普通的 POJO 對于 equals 和 hashCode 等方法,也需要自己維護。特別你寫接口的時候,如果添加了 一個字段忘了維護,可能會導致一些bug

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

@NonNull注解用來判斷項目中的字段是否為空,為空拋出異常

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();
? ? }
}

總結

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • Java語言實現對MySql數據庫中數據的增刪改查操作的代碼

    Java語言實現對MySql數據庫中數據的增刪改查操作的代碼

    這篇文章主要介紹了Java語言實現對MySql數據庫中數據的增刪改查操作的代碼,實現了連接數據庫,和數據庫的增刪改查操作,有興趣的可以了解一下。
    2016-12-12
  • Spring數據庫連接池實現原理深入刨析

    Spring數據庫連接池實現原理深入刨析

    開發(fā)web項目,我們肯定會和數據庫打交道,因此就會涉及到數據庫鏈接的問題。在以前我們開發(fā)傳統(tǒng)的SSM結構的項目時進行數據庫鏈接都是通過JDBC進行數據鏈接,我們每和數據庫打一次交道都需要先獲取一次鏈接,操作完后再關閉鏈接,這樣子效率很低,因此就出現了連接池
    2022-11-11
  • Java開發(fā)學習之Bean的生命周期詳解

    Java開發(fā)學習之Bean的生命周期詳解

    從創(chuàng)建到消亡的完整過程,例如人從出生到死亡的整個過程就是一個生命周期。本文將通過示例為大家詳細講講Bean的生命周期,感興趣的可以學習一下
    2022-06-06
  • java并發(fā)無鎖多線程單線程示例詳解

    java并發(fā)無鎖多線程單線程示例詳解

    這篇文章主要為大家介紹了java并發(fā)無鎖多線程單線程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Java 正則表達式 解釋說明

    Java 正則表達式 解釋說明

    java正則知識小結,一些常見的正則都包括在里面,推薦收藏。
    2009-06-06
  • java用撲克牌計算24點

    java用撲克牌計算24點

    這篇文章主要為大家詳細介紹了java實現24點撲克牌游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-03-03
  • Java截取中英文混合字符串的方法

    Java截取中英文混合字符串的方法

    這篇文章主要為大家詳細介紹了Java截取中英文混合字符串的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • spring?cache注解@Cacheable緩存穿透詳解

    spring?cache注解@Cacheable緩存穿透詳解

    這篇文章主要介紹了spring?cache注解@Cacheable緩存穿透詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Mybatis中設置全局變量的方法示例

    Mybatis中設置全局變量的方法示例

    我們在平時的工作中有時候是需要在配置文件中配置全局變量的,我最近工作中就遇到了,所以索性記錄下來,下面這篇文章主要跟大家介紹了關于Mybatis中設置全局變量的方法示例,需要的朋友可以參考下。
    2017-07-07
  • IDEA Maven 配置備忘筆記

    IDEA Maven 配置備忘筆記

    這篇文章主要介紹了IDEA Maven 配置備忘筆記,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09

最新評論