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

如何解決@Data和@Builder的沖突問題

 更新時間:2024年10月25日 10:51:11   作者:緣丶沐逸塵  
在使用@Data和@Builder注解時,可能會導致無法使用無參構(gòu)造方法創(chuàng)建實體類實例的問題,本文提出了兩種解決方法:一是手動添加無參構(gòu)造并使用@Tolerate注解兼容;二是同時添加@AllArgsConstructor和@NoArgsConstructor注解,既添加無參構(gòu)造也添加全參構(gòu)造

一、問題描述

當在一個實體類中加上了@Data和@Builder兩個注解之后,創(chuàng)建該實體類的實例就無法使用無參構(gòu)造方法來創(chuàng)建了(就是new Person()這個方法報異常)

如下圖:

Person實體類:

package com.muyichen.demo.builder;

import lombok.Builder;
import lombok.Data;

import java.util.Date;

@Data
@Builder
public class Person {

    private String name;

    private Integer age;

    private String gender;

    private Date birth;

}

異常:沒有無參構(gòu)造

二、如何解決該問題

方法1

手動添加無參構(gòu)造,使用@Tolerate注解

package com.muyichen.demo.builder;

import lombok.Builder;
import lombok.Data;
import lombok.experimental.Tolerate;

import java.util.Date;

@Data
@Builder
public class Person {

    private String name;

    private Integer age;

    private String gender;

    private Date birth;

    @Tolerate
    public Person() {
    }
}

這種解決辦法是將無參構(gòu)造與buider中構(gòu)造函數(shù)的沖突做了兼容。

方法2

直接添加兩個注解@AllArgsConstructor、@NoArgsConstructor

package com.muyichen.demo.builder;

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class Person {

    private String name;

    private Integer age;

    private String gender;

    private Date birth;

}

我比較推薦使用這個方法,這個方法添加了無參構(gòu)造和所有有參數(shù)構(gòu)造,這樣可以保證以后使用類型轉(zhuǎn)換映射的時候不會出問題。

總結(jié)

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

相關文章

  • Java簡易計算器程序設計

    Java簡易計算器程序設計

    這篇文章主要為大家詳細介紹了Java簡易計算器程序設計的相關參考資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2015-10-10
  • Spring Boot項目中定制PropertyEditors方法

    Spring Boot項目中定制PropertyEditors方法

    在本篇文章里小編給大家分享的是一篇關于Spring Boot定制PropertyEditors的知識點內(nèi)容,有需要的朋友們可以參考學習下。
    2019-11-11
  • 如何將maven項目導出jar包(最簡單方法)

    如何將maven項目導出jar包(最簡單方法)

    大家都知道對于將maven項目導出jar包有好幾種方式,本文給大家分享一種方式最容易且最方便,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • Spring MVC 圖片的上傳和下載功能

    Spring MVC 圖片的上傳和下載功能

    SSM 框架是一種基于Java的Web開發(fā)框架,其中Spring作為控制層、SpringMVC作為視圖層、MyBatis作為持久層,這個框架非常適合Web應用程序的開發(fā),這篇文章主要介紹了Spring MVC 圖片的上傳和下載功能,需要的朋友可以參考下
    2023-03-03
  • Java線程間的通信方式詳解

    Java線程間的通信方式詳解

    這篇文章主要為大家詳細介紹了Java線程間的通信方式,以代碼結(jié)合文字的方式來討論線程間的通信,感興趣的朋友可以參考一下
    2016-05-05
  • 面向?qū)ο蠛兔嫦蜻^程的區(qū)別(動力節(jié)點java學院整理)

    面向?qū)ο蠛兔嫦蜻^程的區(qū)別(動力節(jié)點java學院整理)

    很多朋友不清楚面向?qū)ο蠛兔嫦蜻^程有什么區(qū)別,接下來小編給大家整理了關于面向?qū)ο蠛兔嫦蜻^程的區(qū)別講解,感興趣的朋友可以參考下
    2017-04-04
  • Java 時間轉(zhuǎn)換的實例代碼

    Java 時間轉(zhuǎn)換的實例代碼

    下面小編就為大家?guī)硪黄狫ava 時間轉(zhuǎn)換的實例代碼。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • java中forward轉(zhuǎn)發(fā)的使用

    java中forward轉(zhuǎn)發(fā)的使用

    在Java中,forward轉(zhuǎn)發(fā)是一種非常常見且重要的操作,我們將深入探討forward的概念和用法,并給出一些代碼示例來幫助讀者更好地理解,感興趣的可以了解下
    2023-11-11
  • Java字節(jié)碼增強技術知識點詳解

    Java字節(jié)碼增強技術知識點詳解

    在本篇文章里小編給大家整理的是一篇關于Java字節(jié)碼增強技術知識點詳解內(nèi)容,有興趣的朋友可以跟著學習下。
    2021-08-08
  • Java批量從svn導出多個項目代碼實例

    Java批量從svn導出多個項目代碼實例

    這篇文章主要介紹了java批量從svn導出多個項目代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03

最新評論