扫码一下
查看教程更方便
mapstruct 可以无缝地将数字转换为所需格式的字符串。 我们可以在 @mapping
注解期间将所需的格式作为 numberformat 传递。 例如,考虑以数字形式存储的金额以货币格式显示的情况
打开映射隐式类型转换章节中更新的项目映射。
使用以下代码创建 carentity.java
carentity.java
package com.jiyik.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.jiyik.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.jiyik.mapper; import com.jiyik.entity.carentity; import com.jiyik.model.car; import org.mapstruct.mapper; import org.mapstruct.mapping; @mapper public interface carmapper { @mapping(source = "price", target = "price", numberformat = "$#.00") car getmodelfromentity(carentity carentity); }
使用以下代码创建 carmappertest.java
carmappertest.java
import com.jiyik.entity.carentity; import com.jiyik.mapper.carmapper; import com.jiyik.model.car; import org.junit.test; import org.mapstruct.factory.mappers; import static org.junit.assert.assertequals; 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
执行结果如下