私はJSONをオブジェクトにマップするためにjacksonライブラリを使用しています。私は問題をたくさん単純化しました、これは何が起こるかです:
public class MyObject{
public ForeignCollection<MySecondObject> getA(){
return null;
}
public ForeignCollection<MyThirdObject> getB(){
return null;
}
}
空のJSON文字列を解析しています:
ObjectMapper mapper = new ObjectMapper();
mapper.readValue("{}", MyObject.class);
readValue
で、私はこの例外を受け取ります:
com.fasterxml.jackson.databind.JsonMappingException: Can not find a deserializer for non-concrete Collection type [collection type; class com.j256.ormlite.dao.ForeignCollection, contains [simple type, class com.test.MyThirdObject]]
これは、クラスに。を返す2つの get
メソッドがある場合に発生します。メソッドの1つを削除しても、例外は発生しません。MyObject
ForeignCollection
get
マッパーがメソッドを見るという事実に実際に驚いていget
ます。それは私が示すフィールドを設定するだけです。
ここで何が起きてるの?