これは、Map を POJO に変換するための私のコードです。
public static <T> T createTObject(Class<T> clazz, Map<String,Object> toConvert){
final ObjectMapper mapper = new ObjectMapper();
T obj = null;
try {
obj = mapper.convertValue(toConvert, clazz);
} catch (JsonSyntaxException e) {
throw new MungoException("Cannot create object because JSON string is malformed");
} catch(Exception e) {
throw new MungoException("Some other error occurred when trying to deserialize JSON string. Check if POJO field names match with the Map keys.");
}
return obj;
}
問題は、このメソッドの JUnit テストを実行すると、次のエラーがスローされることです。
java.lang.IllegalArgumentException: No suitable constructor found for type [simple type, class com.mungoae.MungoTest$Greeting]: can not instantiate from JSON object (need to add/enable type information?)
at [Source: N/A; line: -1, column: -1]
誰でもこのエラーの修正についてアドバイスできますか?
アップデート:
これは、このエラーをスローするテストです:
@Test
public void testMapDBObjectToPOJO(){
Map<String,Object> map = new HashMap<String,Object>();
map.put("greeting", "Hello world!");
map.put("_id", "51cc93ad23187afa8e0a4433");
Greeting greeting = Mapper.createTObject(Greeting.class, map);
assertNotNull(greeting);
assertEquals("Hello world!", greeting.getGreeting());
}