最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mapstruct的用法之qualifiedByName示例詳解

 更新時間:2022年04月06日 10:01:00   作者:m0_54861649  
qualifiedByName的意思就是使用這個Mapper接口中的指定的默認方法去處理這個屬性的轉換,而不是簡單的get?set,今天通過本文給大家介紹下mapstruct的用法之qualifiedByName示例詳解,感興趣的朋友一起看看吧

qualifiedByName的意思就是使用這個Mapper接口中的指定的默認方法去處理這個屬性的轉換,而不是簡單的get set。網上一直沒找到…

可用于格式化小數位等,在po轉換為vo時就已格式化小數位完成,所以不必單獨再寫代碼處理小數位。

1 引用pom1 ,能正常使用mapstruct的注解,但不會生成Impl類

 <!-- https://mvnrepository.com/artifact/org.mapstruct/mapstruct-jdk8 -->
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-jdk8</artifactId>
            <version>1.2.0.Final</version>
        </dependency>

引用pom2 才會生成Impl類

2 定義ConvertMapper

package com.weather.weatherexpert.common.model.mapper;
import com.weather.weatherexpert.common.model.po.AreaPO;
import com.weather.weatherexpert.common.model.vo.AreaVO;
import org.mapstruct.MapMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Named;
import org.mapstruct.factory.Mappers;
import java.text.DecimalFormat;
/**
 * <p>Title: </p>
 * <p>Description: </p>
 *
 */
@Mapper
public interface ConvertMapper {
    ConvertMapper INSTANCE = Mappers.getMapper(ConvertMapper.class);
    @Mapping(source = "pm25", target = "pm25", qualifiedByName = "formatDoubleDef")
    AreaVO areaPO2areaVO(AreaPO areaPO);
    @Named("formatDoubleDef")//需要起個名字,不然報錯,可以與方法名一致,當然也可以不一致
    default Double formatDouble(Double source) {
        DecimalFormat decimalFormat = new DecimalFormat("0.00");//小數位格式化
        if (source == null) {
            source = 0.0;
        }
        return Double.parseDouble(decimalFormat.format(source));
    }
}

3 定義源類和目標類

public class AreaPO {
    private String cityName;
    private Integer haveAir;
    private Double pm25;
    private String pm10Str;
    ............
}
public class AreaVO {
    private String cityName;
    private Integer haveAir;
    private Double pm25;
    private String pm25Str;
    private Double pm10;
    ......    
}

4 看生成的Impl類ConvertMapperImpl

package com.weather.weatherexpert.common.model.mapper;
import com.weather.weatherexpert.common.model.po.AreaPO;
import com.weather.weatherexpert.common.model.vo.AreaVO;
public class ConvertMapperImpl implements ConvertMapper {
    public ConvertMapperImpl() {
    }
    public AreaVO areaPO2areaVO(AreaPO areaPO) {
        if (areaPO == null) {
            return null;
        } else {
            AreaVO areaVO = new AreaVO();
            areaVO.setPm25(this.formatDouble(areaPO.getPm25()));
            areaVO.setCityName(areaPO.getCityName());
            areaVO.setHaveAir(areaPO.getHaveAir());
            return areaVO;
        }
}

5 測試

        AreaPO areaPO = new AreaPO("忻州", 1, 1.256879);
        AreaVO areaVO =
                ConvertMapper.INSTANCE.areaPO2areaVO(areaPO);
        logger.info("JSON.toJSONString(areaVO):" + JSON.toJSONString(areaVO));

輸出:

JSON.toJSONString(areaVO):{“cityName”:“忻州”,“haveAir”:1,“pm25”:1.26}

關于@Target注解的使用可見:

詳解JDK 5 Annotation 注解之@Target的用法介紹

到此這篇關于mapstruct的用法之qualifiedByName示例詳解的文章就介紹到這了,更多相關mapstruct的用法內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java日常練習題,每天進步一點點(29)

    Java日常練習題,每天進步一點點(29)

    下面小編就為大家?guī)硪黄狫ava基礎的幾道練習題(分享)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望可以幫到你
    2021-07-07
  • Spring boot通過切面,實現超靈活的注解式數據校驗過程

    Spring boot通過切面,實現超靈活的注解式數據校驗過程

    這篇文章主要介紹了Spring boot通過切面,實現超靈活的注解式數據校驗過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java 結合jQuery實現跨域名獲取數據的方法

    java 結合jQuery實現跨域名獲取數據的方法

    下面小編就為大家?guī)硪黄猨ava 結合jQuery實現跨域名獲取數據的方法。小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05
  • Java Morris遍歷算法及其在二叉樹中的應用

    Java Morris遍歷算法及其在二叉樹中的應用

    Morris遍歷是一種基于線索二叉樹的遍歷算法,可以在不使用?;蜻f歸的情況下,實現二叉樹的前序、中序和后序遍歷。該算法利用二叉樹中的空指針或線索指針,將遍歷序列嵌入到原二叉樹中,實現了常數級別的空間復雜度,適用于對空間要求較高的場景
    2023-04-04
  • spring security登錄認證授權的項目實踐

    spring security登錄認證授權的項目實踐

    SpringSecurity主要實現了認證(Authentication)和授權(AccessControl),本文就來介紹一下spring security登錄認證授權的項目實踐,感興趣的可以了解一下
    2025-01-01
  • java字符串轉JSON簡單代碼示例

    java字符串轉JSON簡單代碼示例

    這篇文章主要給大家介紹了關于java字符串轉JSON的相關資料,JSON?是一種輕量級的數據交換格式,常用于Web應用程序中的數據傳輸,文中通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-09-09
  • springboot 自定義異常并捕獲異常返給前端的實現代碼

    springboot 自定義異常并捕獲異常返給前端的實現代碼

    在開發(fā)中,如果用try catch的方式,每個方法都需要單獨實現,為了方便分類異常,返回給前端,采用了@ControllerAdvice注解和繼承了RuntimeException的方式來實現,具體實現內容跟隨小編一起看看吧
    2021-11-11
  • 淺談Java開發(fā)架構之領域驅動設計DDD落地

    淺談Java開發(fā)架構之領域驅動設計DDD落地

    DDD(Domain-Driven Design 領域驅動設計)是由Eric Evans最先提出,目的是對軟件所涉及到的領域進行建模,以應對系統規(guī)模過大時引起的軟件復雜性的問題
    2021-06-06
  • Java棋類游戲實踐之中國象棋

    Java棋類游戲實踐之中國象棋

    這篇文章主要為大家詳細介紹了Java棋類游戲中的中國象棋實現方法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Java中的阻塞隊列BlockingQueue使用詳解

    Java中的阻塞隊列BlockingQueue使用詳解

    這篇文章主要介紹了Java中的阻塞隊列BlockingQueue使用詳解,阻塞隊列是一種線程安全的數據結構,用于在多線程環(huán)境下進行數據交換,它提供了一種阻塞的機制,當隊列為空時,消費者線程將被阻塞,直到隊列中有數據可供消費,需要的朋友可以參考下
    2023-10-10

最新評論

林西县| 石泉县| 息烽县| 依兰县| 来凤县| 万山特区| 泰安市| 虎林市| 久治县| 海淀区| 泾川县| 通榆县| 宁强县| 泰来县| 什邡市| 双辽市| 阆中市| 故城县| 新密市| 浦北县| 平安县| 长宁区| 余姚市| 郸城县| 方城县| 万年县| 墨竹工卡县| 株洲县| 阳城县| 体育| 新巴尔虎左旗| 宣汉县| 始兴县| 新安县| 正镶白旗| 吴忠市| 汝南县| 奉贤区| 长岭县| 通海县| 安溪县|