Как я могу сопоставить java.util.Map с POJO?ModelMapper: как сопоставить java.util.Map с POJO?
Следующий тест дает мне ошибку конфигурации.
Кажется, что аналогичная проблема была открыта, но она не была разрешена. https://github.com/jhalterman/modelmapper/issues/116.
Тест:
package org.me.modelmapper;
import java.util.HashMap;
import org.modelmapper.ModelMapper;
import org.modelmapper.PropertyMap;
import org.testng.Assert;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
public class MapperTest {
private ModelMapper modelMapper;
public MapperTest() {
}
public static class Foo {
public String a;
public String b;
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setB(String b) {
this.b = b;
}
}
@BeforeMethod
public void setUpMethod() throws Exception {
modelMapper = new ModelMapper();
modelMapper.getConfiguration()
.setFieldMatchingEnabled(true);
}
@Test
public void shouldMapHashMapToFoo() {
HashMap<String, String> map = new HashMap<>();
map.put("a", "aaaa");
map.put("b", "bbbb");
PropertyMap<HashMap<String, String>, Foo> fooMap = new PropertyMap<HashMap<String, String>, MapperTest.Foo>() {
@Override
protected void configure() {
map(source.get("a"), destination.a);
map(source.get("b"), destination.b);
}
};
modelMapper.addMappings(fooMap);
Foo foo = modelMapper.map(map, Foo.class);
Assert.assertEquals(foo.getA(), map.get("a"));
Assert.assertEquals(foo.getB(), map.get("b"));
}
}
Ошибка:
Configuring TestNG with: [email protected]c399
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 2.326 sec <<< FAILURE!
shouldMapHashMapToFoo(org.me.modelmapper.MapperTest) Time elapsed: 0.186 sec <<< FAILURE!
org.modelmapper.ConfigurationException: ModelMapper configuration errors:
1) Invalid source method java.util.HashMap.get(). Ensure that method has zero parameters and does not return void.
2) Invalid source method java.util.HashMap.get(). Ensure that method has zero parameters and does not return void.
2 errors
at org.modelmapper.internal.Errors.throwConfigurationExceptionIfErrorsExist(Errors.java:241)
at org.modelmapper.internal.ExplicitMappingBuilder.visitPropertyMap(ExplicitMappingBuilder.java:228)
at org.modelmapper.PropertyMap.configure(PropertyMap.java:380)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.modelmapper.internal.ExplicitMappingBuilder.build(ExplicitMappingBuilder.java:194)
at org.modelmapper.internal.TypeMapImpl.addMappings(TypeMapImpl.java:72)
at org.modelmapper.internal.TypeMapStore.getOrCreate(TypeMapStore.java:101)
at org.modelmapper.ModelMapper.addMappings(ModelMapper.java:93)
at org.me.modelmapper.MapperTest.shouldMapHashMapToFoo(MapperTest.java:354)
Results :
Failed tests: shouldMapHashMapToFoo(org.me.modelmapper.MapperTest): ModelMapper configuration errors:
(..)
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
Вставьте здесь соответствующую часть ошибки/минимального примера. – Smutje
Тест в единственной ссылке уже минимален. Благодарю. – dmz73
Запрос состоял в том, чтобы скопировать/вставить содержимое этих двух файлов здесь. – StephaneM