女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

PO VO DTO轉(zhuǎn)換神器的思路

Linux愛(ài)好者 ? 來(lái)源:今日頭條 ? 作者:bettermann ? 2021-10-12 11:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

當(dāng)然有的人喜歡寫(xiě)get set,或者用BeanUtils 進(jìn)行復(fù)制,代碼只是工具,本文只是提供一種思路。

pom 配置:

<properties>
<project.build.sourceEncoding>UTF-8project.build.sourceEncoding>
<maven.compiler.source>1.8maven.compiler.source>
<maven.compiler.target>1.8maven.compiler.target>
<org.mapstruct.version>1.4.1.Finalorg.mapstruct.version>
<org.projectlombok.version>1.18.12org.projectlombok.version>
properties>

<dependencies>
<dependency>
<groupId>org.mapstructgroupId>
<artifactId>mapstructartifactId>
<version>${org.mapstruct.version}version>
dependency>


<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<version>${org.projectlombok.version}version>
<scope>providedscope>
dependency>


<dependency>
<groupId>org.mapstructgroupId>
<artifactId>mapstruct-processorartifactId>
<version>${org.mapstruct.version}version>
<scope>providedscope>
dependency>

dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.pluginsgroupId>
<artifactId>maven-compiler-pluginartifactId>
<version>3.8.1version>
<configuration>
<source>1.8source>
<target>1.8target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<version>${org.projectlombok.version}version>
path>
<path>
<groupId>org.mapstructgroupId>
<artifactId>mapstruct-processorartifactId>
<version>${org.mapstruct.version}version>
path>
annotationProcessorPaths>
configuration>
plugin>
plugins>
build>

關(guān)于lombok和mapstruct的版本兼容問(wèn)題多說(shuō)幾句,maven插件要使用3.6.0版本以上、lombok使用1.16.16版本以上,另外編譯的lombok mapstruct的插件不要忘了加上。否則會(huì)出現(xiàn)下面的錯(cuò)誤:No property named "aaa" exists in source parameter(s). Did you mean "null"?

這種異常就是lombok編譯異常導(dǎo)致缺少get setter方法造成的。還有就是缺少構(gòu)造函數(shù)也會(huì)拋異常。

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
publicclassStudent{

privateStringname;
privateintage;
privateGenderEnumgender;
privateDoubleheight;
privateDatebirthday;

}
publicenumGenderEnum{
Male("1","男"),
Female("0","女");

privateStringcode;
privateStringname;

publicStringgetCode(){
returnthis.code;
}

publicStringgetName(){
returnthis.name;
}

GenderEnum(Stringcode,Stringname){
this.code=code;
this.name=name;
}
}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
publicclassStudentVO{
privateStringname;
privateintage;
privateStringgender;
privateDoubleheight;
privateStringbirthday;
}
@Mapper
publicinterfaceStudentMapper{

StudentMapperINSTANCE=Mappers.getMapper(StudentMapper.class);

@Mapping(source="gender.name",target="gender")
@Mapping(source="birthday",target="birthday",dateFormat="yyyy-MM-ddHHss")
StudentVOstudent2StudentVO(Studentstudent);

}

實(shí)體類(lèi)是開(kāi)發(fā)過(guò)程少不了的,就算是用工具生成肯定也是要有的,需要手寫(xiě)的部分就是這個(gè)Mapper的接口,編譯完成后會(huì)自動(dòng)生成相應(yīng)的實(shí)現(xiàn)類(lèi)

然后就可以直接用mapper進(jìn)行實(shí)體的轉(zhuǎn)換了

publicclassTest{

publicstaticvoidmain(String[]args){

Studentstudent=Student.builder().name("小明").age(6).gender(GenderEnum.Male).height(121.1).birthday(newDate()).build();
System.out.println(student);
//這行代碼便是實(shí)際要用的代碼
StudentVOstudentVO=StudentMapper.INSTANCE.student2StudentVO(student);
System.out.println(studentVO);

}

}

mapper可以進(jìn)行字段映射,改變字段類(lèi)型,指定格式化的方式,包括一些日期的默認(rèn)處理。

可以手動(dòng)指定格式化的方法:

@Mapper
publicinterfaceStudentMapper{

StudentMapperINSTANCE=Mappers.getMapper(StudentMapper.class);

@Mapping(source="gender",target="gender")
@Mapping(source="birthday",target="birthday",dateFormat="yyyy-MM-ddHHss")
StudentVOstudent2StudentVO(Studentstudent);

defaultStringgetGenderName(GenderEnumgender){
returngender.getName();
}

}

上面只是最簡(jiǎn)單的實(shí)體映射處理,下面介紹一些高級(jí)用法

1.List 轉(zhuǎn)換

屬性映射基于上面的mapping配置

@Mapper
publicinterfaceStudentMapper{

StudentMapperINSTANCE=Mappers.getMapper(StudentMapper.class);

@Mapping(source="gender.name",target="gender")
@Mapping(source="birthday",target="birthday",dateFormat="yyyy-MM-ddHHss")
StudentVOstudent2StudentVO(Studentstudent);


Liststudents2StudentVOs(ListstudentList);

}
publicstaticvoidmain(String[]args){

Studentstudent=Student.builder().name("小明").age(6).gender(GenderEnum.Male).height(121.1).birthday(newDate()).build();

Listlist=newArrayList<>();
list.add(student);
Listresult=StudentMapper.INSTANCE.students2StudentVOs(list);
System.out.println(result);
}

2.多對(duì)象轉(zhuǎn)換到一個(gè)對(duì)象

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
publicclassStudent{

privateStringname;
privateintage;
privateGenderEnumgender;
privateDoubleheight;
privateDatebirthday;

}
@Data
@AllArgsConstructor
@Builder
@NoArgsConstructor
publicclassCourse{

privateStringcourseName;
privateintsortNo;
privatelongid;

}
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
publicclassStudentVO{
privateStringname;
privateintage;
privateStringgender;
privateDoubleheight;
privateStringbirthday;
privateStringcourse;
}
@Mapper
publicinterfaceStudentMapper{

StudentMapperINSTANCE=Mappers.getMapper(StudentMapper.class);

@Mapping(source="student.gender.name",target="gender")
@Mapping(source="student.birthday",target="birthday",dateFormat="yyyy-MM-ddHHss")
@Mapping(source="course.courseName",target="course")
StudentVOstudentAndCourse2StudentVO(Studentstudent,Coursecourse);

}
publicclassTest{

publicstaticvoidmain(String[]args){

Studentstudent=Student.builder().name("小明").age(6).gender(GenderEnum.Male).height(121.1).birthday(newDate()).build();
Coursecourse=Course.builder().id(1L).courseName("語(yǔ)文").build();

StudentVOstudentVO=StudentMapper.INSTANCE.studentAndCourse2StudentVO(student,course);
System.out.println(studentVO);
}

}

3.默認(rèn)值

@Mapper
publicinterfaceStudentMapper{

StudentMapperINSTANCE=Mappers.getMapper(StudentMapper.class);

@Mapping(source="student.gender.name",target="gender")
@Mapping(source="student.birthday",target="birthday",dateFormat="yyyy-MM-ddHHss")
@Mapping(source="course.courseName",target="course")
@Mapping(target="name",source="student.name",defaultValue="張三")
StudentVOstudentAndCourse2StudentVO(Studentstudent,Coursecourse);

}

	

		

轉(zhuǎn)自:toutiao.com/i6891531055631696395

責(zé)任編輯:haq
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 轉(zhuǎn)換器
    +關(guān)注

    關(guān)注

    27

    文章

    9084

    瀏覽量

    151996
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4901

    瀏覽量

    70842
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    (ST大賽三等獎(jiǎng)作品)超聲波自拍神器實(shí)例項(xiàng)目

    (ST大賽三等獎(jiǎng)作品)超聲波自拍神器電路圖:
    發(fā)表于 05-28 21:04

    CCLINKIE轉(zhuǎn)PROFINET:電機(jī)的“網(wǎng)絡(luò)沖浪神器”!

    PROFINET的大家庭。有了它,電機(jī)就像裝上了“智能小馬達(dá)”,和其他設(shè)備的配合那叫一個(gè)默契,生產(chǎn)效率直接“起飛”! 在這里,我必須給大家推薦一款“神器”——耐達(dá)訊NY-N831 -CCLINKIE網(wǎng)關(guān)。這
    發(fā)表于 05-28 15:21

    使用nonai_2d的CRC功能進(jìn)行圖像類(lèi)型轉(zhuǎn)換,nonai_2d模塊的要如何使用?

    我希望使用nonai_2d的CRC功能進(jìn)行圖像類(lèi)型轉(zhuǎn)換,參考sample_mcm例程添加了對(duì)應(yīng)的start和exit,并且做了sys_bind,也申請(qǐng)了vb,但是運(yùn)行之后系統(tǒng)一直提示類(lèi)似沒(méi)有緩沖區(qū)
    發(fā)表于 03-11 06:44

    TI_SN74LVC2G125DCUR為什么會(huì)有兩個(gè)Vo輸出,每個(gè)都代表什么意思?

    如上圖紅色圓圈部分,為什么會(huì)有兩個(gè)Vo輸出,每個(gè)都代表什么意思?以及為什么沒(méi)有在手冊(cè)中看到關(guān)于輸入阻抗?
    發(fā)表于 01-07 08:15

    DAC8550輸出公式為Vo=VREF/2+VREF*D/65536,上電初始,程序沒(méi)有運(yùn)行時(shí)D的值是多少?

    DAC輸出公式為Vo=VREF/2+VREF*D/65536,上電初始,程序沒(méi)有運(yùn)行時(shí)D的值是多少?
    發(fā)表于 12-16 07:32

    BUCK電路占空比對(duì)轉(zhuǎn)換效率的影響

    周期T_SW的比例,計(jì)算公式為D=T_ON/T_SW。在BUCK電路中,占空比D還可以根據(jù)伏秒積平衡原理計(jì)算,即VIN*TON=VO*TOFF,從而得出D=Vo/Vin(在忽略開(kāi)關(guān)管和電感等元件的壓降時(shí))。這里的Vo是輸出電壓,
    的頭像 發(fā)表于 12-12 15:39 ?3004次閱讀

    FPGA打磚塊小游戲設(shè)計(jì)思路

    HDL,?Vivado 平臺(tái)上開(kāi)發(fā)打磚塊小游戲并使用 PS2 與 VGA 的基本思路: 一、整體架構(gòu)設(shè)計(jì) 1. 輸入模塊: ? PS2 接口模塊:負(fù)責(zé)與 PS2 設(shè)備(如游戲手柄)進(jìn)行通信,接收手柄
    的頭像 發(fā)表于 12-09 16:57 ?998次閱讀

    用TPA2005D1搭了一個(gè)音頻放大電路,在測(cè)輸出端Vo+和Vo-的波形時(shí),發(fā)現(xiàn)有雜波,怎么去除?

    最近用TPA2005D1搭了一個(gè)音頻放大電路,試了一下,功能可以了,但是在測(cè)輸出端Vo+和Vo-的波形時(shí),發(fā)現(xiàn)有雜波,電路圖和波形圖在下面,請(qǐng)知道的大神幫忙分析一下,怎么去雜波??
    發(fā)表于 10-21 08:11

    監(jiān)控平臺(tái)設(shè)計(jì)思路

    電子發(fā)燒友網(wǎng)站提供《監(jiān)控平臺(tái)設(shè)計(jì)思路.pptx》資料免費(fèi)下載
    發(fā)表于 10-09 11:18 ?0次下載

    TAS6424-Q1或TAS6424E-Q1 Po_BTL模式PVDD=25V供電狀態(tài)下,可以支持2Ω負(fù)載?

    咨詢(xún)TAS6424-Q1或TAS6424E-Q1Po_BTL模式PVDD=25V供電狀態(tài)下,能否支持2Ω負(fù)載(有計(jì)劃連接座椅振動(dòng)器,座椅振動(dòng)器直流阻抗范圍按照:2±20%歐姆;最低值:1.6歐姆
    發(fā)表于 10-09 07:34

    用OPA27做同相加法器Vo=Vi1+Vi2時(shí)遇到的疑問(wèn)求解

    用OPA27做同相加法器Vo=Vi1+Vi2的時(shí)候,函數(shù)發(fā)生器給Vi1輸入頻率為1kHZ,Vpp=1V的正弦波,而Vi2接地時(shí),沒(méi)有輸出。然后稍作改動(dòng),成了Vo=-(Vi1+Vi2),如下圖所示
    發(fā)表于 09-12 06:31

    嵌入式澆花神器拆解

    這就是澆花神器,很小巧的一個(gè)東西,可以把水桶中的水泵到花盆中。它可以用按鍵手動(dòng)操作,不過(guò)更方便的是通過(guò)WiFi連接網(wǎng)絡(luò),這樣就可以通過(guò)手機(jī)端的APP遠(yuǎn)程操作了,還可以定時(shí)操作,間隔多長(zhǎng)時(shí)間澆一次,每次膠水多長(zhǎng)時(shí)間都可以設(shè)置。
    的頭像 發(fā)表于 08-29 10:11 ?761次閱讀
    嵌入式澆花<b class='flag-5'>神器</b>拆解

    PGA204的1管腳和9管腳沒(méi)有用到(Vo1,Vo2),布線時(shí)應(yīng)該如何布線?

    PGA204的1管腳和9管腳沒(méi)有用到(Vo1,Vo2),布線時(shí)應(yīng)該如何布線,是直接懸空還還是接AGND或者是VCC呢?
    發(fā)表于 08-28 08:20

    為什么LM324在測(cè)試失調(diào)電壓和失調(diào)電流時(shí)要Vo=1.4V,有什么依據(jù)嗎?

    為什么LM324在測(cè)試失調(diào)電壓和失調(diào)電流時(shí)要Vo=1.4V,有什么依據(jù)嗎
    發(fā)表于 08-02 09:32

    THS4509運(yùn)放給+5V單電源供電,請(qǐng)問(wèn)輸出電壓Vo+ - Vo-最大能輸出多少V?

    你好,請(qǐng)問(wèn)這款運(yùn)放給+5V單電源供電,請(qǐng)問(wèn)輸出電壓Vo+ - Vo-最大能輸出多少V?
    發(fā)表于 08-01 08:16