小编Ant*_*nyC的帖子

Protobuf3为什么不允许重复映射?

我正在使用Protobuf3,需要创建地图列表。我以为我可以使用,repeated map<string, string>但似乎不能。

我应该怎么用呢?

谢谢

java protocol-buffers

2
推荐指数
1
解决办法
318
查看次数

mapstruct protobuf3 映射映射

我正在尝试使用 mapstruct 将我的 DTO 映射到 protobuf 生成的类。此类包含地图,但这会导致异常:

java.lang.UnsupportedOperationException
    at java.util.Collections$UnmodifiableMap.putAll(Collections.java:1463)
Run Code Online (Sandbox Code Playgroud)

我不知道如何绕过这个。

这是我的映射器功能

@Mappings({
      @Mapping(target = "profiles", source = "profiles"),
  MyClassMessage.Builder convertToBuilder(MyClassDto myClassDto);
Run Code Online (Sandbox Code Playgroud)

它生成此代码

if ( builder.getProfiles() != null ) {
  Map<String, Object> map = stringInterpreterProfileMapToStringInterpreterProfileMessageMap( interpreterSettingDto.getProfiles() );
  if ( map != null ) {
    builder.getProfiles().putAll( map ); // <-- this cause the exception
  }
 }
Run Code Online (Sandbox Code Playgroud)

但我认为它应该是这样的

if ( builder.getProfiles() != null ) {
            Map<String, Object> map = stringInterpreterProfileMapToStringInterpreterProfileMessageMap( interpreterSettingDto.getProfiles() );
            if ( map != null ) {
                builder.putAllProfiles( map ); …
Run Code Online (Sandbox Code Playgroud)

protocol-buffers mapstruct

1
推荐指数
1
解决办法
1672
查看次数

标签 统计

protocol-buffers ×2

java ×1

mapstruct ×1