- MapStruct 教程
- MapStruct - 首頁
- MapStruct - 概覽
- MapStruct - 環境設定
- 對映
- MapStruct - 基本對映
- MapStruct - 自定義對映
- MapStruct - 對映多個
- MapStruct - 對映巢狀 Bean
- MapStruct - 對映 Direct Field
- MapStruct - Builder
- 資料型別轉換
- MapStruct - 隱式型別轉換
- MapStruct - 使用 numberFormat
- MapStruct - 使用 dateFormat
- MapStruct - 使用 expression
- MapStruct - 使用 constant
- MapStruct - 使用 defaultValue
- MapStruct - 使用 defaultExpression
- 對映集合
- MapStruct - 對映 List
- MapStruct - 對映 Map
- 其他
- MapStruct - 對映 Streams
- MapStruct - 對映 Enum
- MapStruct - 丟擲異常
- MapStruct - 自定義 Mapper
- MapStruct 有用的資源
- MapStruct - 快速指南
- MapStruct - 有用的資源
- MapStruct - 討論
MapStruct - 使用 numberFormat
MapStruct 無縫地處理將數字轉換為字串所需的格式。我們可以在 @Mapping 註釋期間將所需格式作為 numberFormat 傳遞。例如,考慮一種情況,其中儲存在數字中的金額以貨幣格式顯示。
來源 - 實體的價格為 350。
目標 - 模型顯示價格為 $350.00。
numberFormat - 使用格式 $#.00
示例
在 Eclipse 中開啟 對映隱式型別轉換 章節中更新的專案對映。
使用以下程式碼建立 CarEntity.java −
CarEntity.java
package com.tutorialspoint.entity;
public class CarEntity {
private int id;
private double price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
使用以下程式碼建立 Car.java −
Car.java
package com.tutorialspoint.model;
public class Car {
private int id;
private String price;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
}
使用以下程式碼建立 CarMapper.java −
CarMapper.java
package com.tutorialspoint.mapper;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import com.tutorialspoint.entity.CarEntity;
import com.tutorialspoint.model.Car;
@Mapper
public interface CarMapper {
@Mapping(source = "price", target = "price", numberFormat = "$#.00")
Car getModelFromEntity(CarEntity carEntity);
}
使用以下程式碼建立 CarMapperTest.java −
CarMapperTest.java
package com.tutorialspoint.mapping;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.Test;
import org.mapstruct.factory.Mappers;
import com.tutorialspoint.entity.CarEntity;
import com.tutorialspoint.mapper.CarMapper;
import com.tutorialspoint.model.Car;
public class CarMapperTest {
private CarMapper carMapper = Mappers.getMapper(CarMapper.class);
@Test
public void testEntityToModel() {
CarEntity entity = new CarEntity();
entity.setPrice(345000);
entity.setId(1);
Car model = carMapper.getModelFromEntity(entity);
assertEquals(model.getPrice(), "$345000.00");
assertEquals(entity.getId(), model.getId());
}
}
執行以下命令來測試對映。
mvn clean test
輸出
命令成功執行後。驗證輸出。
mvn clean test [INFO] Scanning for projects... ... [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ mapping --- [INFO] Surefire report directory: \mvn\mapping\target\surefire-reports ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.tutorialspoint.mapping.CarMapperTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.035 sec Running com.tutorialspoint.mapping.DeliveryAddressMapperTest Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0 sec Running com.tutorialspoint.mapping.StudentMapperTest Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec Results : Tests run: 4, Failures: 0, Errors: 0, Skipped: 0 ...
廣告