mapstruct将列表转换为地图

我是mapstruct的新手。我正在尝试将List转换为Map,我在网上进行了很多搜索,我有一些解决方案,例如尚未在mapstruct中实现。如果有人能够提供其他解决方案,我将感到非常高兴。 我正在寻找的所有转换映射如下:

@Mapping
Map<String,Object> toMap(List<myobj>)

@Mapping
    List<myobj> toList(Map<String,Object>)

其中 myobj 如下:

class myobj {
  String key; //map key
  String value; //map value
  String field1;
}

在上面,仅使用myobj类中的键和值字段。我找到了一种解决方案,但以下是将某些对象转换为MAP的方法,但是在下面使用了Jackson:

@Mapper
public interface ModelMapper {

  ObjectMapper OBJECT_MAPPER = new ObjectMapper();

  default HashMap<String,Object> toMap(Object filter) {
    TypeFactory typeFactory = OBJECT_MAPPER.getTypeFactory();
    return OBJECT_MAPPER.convertvalue(filter,typeFactory.constructMapType(Map.class,String.class,Object.class));
  }
}

现在有没有要使用mapstruct来实现?

a158abc 回答:mapstruct将列表转换为地图

Map结构没有将所需的List隐式转换为Map。您可以使用以下自定义映射方法:

@Mapper
public interface FooMapper {


    default Map<String,Foo> convertFooListToMap(List<Foo> foos) {
      // custom logic using streams or however you like.
    }
}

其他选项包括您编写的自定义映射器实现,并引用类似@Mapper(uses=CustomMapper.class)

的方式
本文链接:https://www.f2er.com/3140039.html

大家都在问