您好,登錄后才能下訂單哦!
這篇文章主要介紹了Lombok怎么使用@Tolerate實現沖突兼容問題的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Lombok怎么使用@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 假裝它不存在,作用于方法上,沒什么大用,可以配合 @Builder 使用
使用 Lombok 能夠減少程序員的重復工作提高工作效率,而 lombok 的注解基本是基于標準的(如,標準的 Builder 模式),而實際開發的時候有時候為了實現某些能力會對標準實現做一些變形,而這個時候 lombok 的標準實現就會無法滿足需求
使用 @Builder 對一個 DTO 實現一個構造器,但是在做 Json 反序列化的時候發生錯誤,原因就是缺少無參公共的構造函數,而手動寫一個無參構造函數的時候編譯錯誤,就是和 @Builder 沖突,雖然標準的 @Builder 沒法是需要私有化構造函數的,但是在某些場景下我們需要對這種標準變形,這個時候 lombok 提供了 @Tolerate 實現對沖突的兼容
@Builder public class 程熙媛 { @Tolerate public 程熙媛() {} }
關于“Lombok怎么使用@Tolerate實現沖突兼容問題”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Lombok怎么使用@Tolerate實現沖突兼容問題”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。