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

溫馨提示×

溫馨提示×

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

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

Lombok怎么使用@Tolerate實現沖突兼容問題

發布時間:2022-08-29 17:22:15 來源:億速云 閱讀:148 作者:iii 欄目:開發技術

這篇文章主要介紹了Lombok怎么使用@Tolerate實現沖突兼容問題的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Lombok怎么使用@Tolerate實現沖突兼容問題文章都會有所收獲,下面我們一起來看看吧。

使用@Tolerate實現沖突兼容

使用Lombok能夠減少程序員的重復工作提高工作效率,而Lombok的注解基本是基于標準的(如,標準的Builder模式),而實際開發的時候有時候為了實現某些能力會對標準實現做一些變形,而這個時候Lombok的標準實現就會無法滿足需求。

例如,這樣一個場景

使用@Builder對一個DTO實現一個構造器,但是在做Json反序列化的時候發生錯誤,

原因就是缺少無參公共的構造函數,

而手動寫一個無參構造函數的時候編譯錯誤,就是和@Builder沖突,雖然標準的@Builder沒法是需要私有化構造函數的,但是在某些場景下我們需要對這種標準變形,這個時候Lombok提供了@Tolerate實現對沖突的兼容。

/**
 * <p>
 * 包括能力、知識點等
 * </p>
 *
 * @author hlong
 * @since 2020-09-10
 */
@Data
@Entity
@Table(name = "que_attr")
@Builder
@ApiModel(value="QueAttr對象", description="包括能力、知識點等")
public class QueAttr implements Serializable {
 
    @Tolerate
    QueAttr() {}
 
    private static final long serialVersionUID = 1L;
 
    @ApiModelProperty(value = "屬性編號,系統自動產生")
    @Id
    @Column(name = "attr_id")
    private Long attrId;
 
    @ApiModelProperty(value = "屬性編碼")
    @Column(name = "attr_code")
    private String attrCode;
 
    @ApiModelProperty(value = "屬性名稱")
    @Column(name = "name")
    private String name;
 
    @ApiModelProperty(value = "屬性名稱中文")
    @Column(name = "name_cn")
    private String nameCn;
 
    @ApiModelProperty(value = "簡稱")
    @Column(name = "name_short")
    private String nameShort;
 
    @ApiModelProperty(value = "上級節點")
    @Column(name = "attr_up")
    private Long attrUp;
 
    @ApiModelProperty(value = "級別:第1級為0")
    @Column(name = "lev")
    private Integer lev;
 
    @ApiModelProperty(value = "從小到大,從1開始")
    @Column(name = "sort_no")
    private Integer sortNo;
 
    @ApiModelProperty(value = "(枚舉)屬性分類信息 見字典表,這里主要是能力和知識點")
    @Column(name = "attr_type")
    private Long attrType;
 
    @ApiModelProperty(value = "機構編號:0公司")
    @Column(name = "org_id")
    private Long orgId;
 
    @Column(name = "subject")
    private Long subject;
 
    @Column(name = "key_stage")
    private Long keyStage;
 
    @Column(name = "grade")
    private Long grade;
 
    @Column(name = "term")
    private Integer term;
 
    @ApiModelProperty(value = "添加人")
    @Column(name = "user_create")
    private Long userCreate;
 
    @ApiModelProperty(value = "-1刪除 0草稿 1有效")
    @Column(name = "status")
    private Integer status;
 
    @Column(name = "sys_code")
    private Long sysCode;
 
    @ApiModelProperty(value = "更新時間")
    @Column(name = "time_update")
    private Timestamp timeUpdate;
 
    @ApiModelProperty(value = "備注")
    @Column(name = "remark")
    private String remark;
 
    @ApiModelProperty(value = "屬性的uuid")
    @Column(name = "attr_uuid")
    private String attrUuid;
 
    @ApiModelProperty(value = "屬性的父級uuid")
    @Column(name = "attr_up_uuid")
    private String attrUpUuid;
 
    @ApiModelProperty(value = "教材版本uuid")
    @Column(name = "book_code")
    private String bookCode;
 
    @ApiModelProperty(value = "教材版本名稱")
    @Column(name = "book_name")
    private String bookName;
 
    @ApiModelProperty(value = "年級的code-學院code")
    @Column(name = "grade_uuid")
    private String gradeUuid; 
}

Lombok怎么使用@Tolerate實現沖突兼容問題

Lombok實驗性注解之@Tolerate

注解介紹

實現對沖突的兼容,官方解釋:使任何方法或者構造函數讓 lombok 假裝它不存在,作用于方法上,沒什么大用,可以配合 @Builder 使用

使用場景

使用 Lombok 能夠減少程序員的重復工作提高工作效率,而 lombok 的注解基本是基于標準的(如,標準的 Builder 模式),而實際開發的時候有時候為了實現某些能力會對標準實現做一些變形,而這個時候 lombok 的標準實現就會無法滿足需求

使用 @Builder 對一個 DTO 實現一個構造器,但是在做 Json 反序列化的時候發生錯誤,原因就是缺少無參公共的構造函數,而手動寫一個無參構造函數的時候編譯錯誤,就是和 @Builder 沖突,雖然標準的 @Builder 沒法是需要私有化構造函數的,但是在某些場景下我們需要對這種標準變形,這個時候 lombok 提供了 @Tolerate 實現對沖突的兼容

實戰演練

@Builder
public class 程熙媛 {
    @Tolerate
    public 程熙媛() {}
}

關于“Lombok怎么使用@Tolerate實現沖突兼容問題”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Lombok怎么使用@Tolerate實現沖突兼容問題”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

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

AI

阿克陶县| 霸州市| 武威市| 始兴县| 原阳县| 兴城市| 兰坪| 光山县| 绿春县| 肇源县| 阿拉尔市| 福清市| 上林县| 绵阳市| 正宁县| 灵石县| 富裕县| 固镇县| 柘荣县| 栖霞市| 虹口区| 巴林左旗| 高淳县| 阜宁县| 融水| 晋宁县| 县级市| 澄江县| 永福县| 无极县| 天水市| 璧山县| 建平县| 会同县| 张掖市| 阳谷县| 布尔津县| 天峨县| 湟源县| 台州市| 巴中市|