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

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

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

一、問題描述

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

如下圖:

Person實(shí)體類:

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

手動(dòng)添加無參構(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

直接添加兩個(gè)注解@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è)方法,這個(gè)方法添加了無參構(gòu)造和所有有參數(shù)構(gòu)造,這樣可以保證以后使用類型轉(zhuǎn)換映射的時(shí)候不會(huì)出問題。

總結(jié)

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

相關(guān)文章

最新評(píng)論