我正在使用Protobuf3,需要创建地图列表。我以为我可以使用,repeated map<string, string>但似乎不能。
我应该怎么用呢?
谢谢
我正在尝试使用 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)