私はこのようなJava Beanのインタフェースの数を持っている:Java Beanをインスタンス化するためにJava/JacksonでObjectMapperをプログラムで設定するにはどうすればよいですか?
public interface Dog
{
String getName();
void setName(final String value);
}
私もこのような豆の実装自動生成:
public final class DogImpl implements Dog
{
public String getName()
{
return m_name;
}
public void setName(final String value)
{
m_value = value;
}
private volatile String m_value;
}
私はこのようなこれらのBeanを入れ子に起動したときを除いて完璧に動作しますObjectMapperを:
public interface Dog
{
String getName();
void setName(final String value);
Dog getParent();
void setParent(final Dog value);
}
私はこのエラーを取得する:
抽象型は、具体的な型にマップする必要があり、カスタムデシリアライザを持つか、追加の型情報を含む必要があります。
Beanの定義が具体的な型ではなくインターフェイスなので、私の質問は、モジュールや何かを介してObjectMapperの具体的な型へのインタフェース型のマッピングを定義する方法があるかどうかです。
具体的には、私はマップ<クラス<を得ることができますか? >、クラス<? >>を実装具体的な型に変換することはできますが、ObjectMapperに "これを与える"方法がわからないので、具体的な型をAPIの型から検索してインスタンス化できます。これをどのように達成するのですか?