Java Mapstruct不区分大小写映射
mapstruct中是否有一种方法可以在映射时忽略字段的大小写。假设我想映射以下两个类Java Mapstruct不区分大小写映射,java,mapstruct,object-object-mapping,Java,Mapstruct,Object Object Mapping,mapstruct中是否有一种方法可以在映射时忽略字段的大小写。假设我想映射以下两个类 public class Customer { private String ID; public String getID() { return ID; } public void setID(String iD) { this.ID = iD; } } public class CustomerDetails {
public class Customer {
private String ID;
public String getID() {
return ID;
}
public void setID(String iD) {
this.ID = iD;
}
}
public class CustomerDetails {
private String id;
public String getId() {
return ID;
}
public void setId(String id) {
this.id = id;
}
}
MapStruct不会自动映射字段,因为getter方法名称不匹配。是否有方法将MapStruct配置为忽略字段的大小写并自动映射它们不确定是否可以将MapStruct配置为不区分大小写映射,但您始终可以这样定义应映射的内容: @Mappingsource=ID,target=ID 客户详情客户详情客户;
不确定是否可以将mapstruct配置为不区分大小写的映射,但您始终可以这样定义应映射的内容: @Mappingsource=ID,target=ID 客户详情客户详情客户; 可以实现一个自定义AccessorNamegstrategy,该策略将使元素名小写,从而使其不区分大小写 e、 g 可以实现一个自定义AccessorNamegstrategy,该策略将使元素名小写,从而使其不区分大小写 e、 g
目前我们正在这样做,但问题是我们需要在xml和json类之间映射数百个字段。试图找出是否有一种更简单的方法,同时也希望确保我们不会遗漏任何元素目前我们正在这样做,但问题是我们需要在xml和json类之间映射数百个字段。试图找出是否有一种更简单的方法来实现这一点,同时也希望确保我们不会遗漏任何元素为什么属性的名称不符合Java的标准命名约定?一些类是从XSD生成的,其中一些字段是首字母缩略词为什么属性的名称不符合Java的标准命名约定约定?一些类是从XSD生成的,其中一些字段是首字母缩写Hanks Filip!我将添加几个链接。关于自定义AccessorNamegstrategy的文档参考:MapStruct repo上的示例项目:谢谢Filip!我将添加几个链接。关于自定义AccessorNamegstrategy的文档参考:MapStruct repo上的示例项目:
public class CaseInsensitiveAccessorNamingStrategy extends DefaultAccessorNamingStrategy {
@Override
public String getPropertyName(ExecutableElement getterOrSetterMethod) {
return super.getPropertyName( getterOrSetterMethod ).toLowerCase( Locale.ROOT );
}
@Override
public String getElementName(ExecutableElement adderMethod) {
return super.getElementName( adderMethod ).toLowerCase( Locale.ROOT );
}
}