2017-03-22 28 views
-5

我有一個基類A和2個子類B和C,它們擴展了A.A是一個抽象類。而A是另一類中的字段類似於:使用Jackson進行反序列化時獲取NPE讀取空對象字段

@JsonTypeInfo({ 
    use = JsonTypeInfo.Id.NAME, 
    include = JsonTypeInfo.As.PROPERTY, 
    property= "type" 
}) 
@JsonSubTypes({ 
    @JsonSubTypes.Type(value = B.class, name = "b"), 
    @JsonSubTypes.Type(value = C.class, name = "c") 
}) 
public abstract class A { 

} 

public class B extends A { 
    @JsonCreator 
    ... 
} 

public class C extends A { 
    @JsonCreator 
    ... 
} 

public class MyClass { 
    private A a; 
} 

我想序列化和反序列化MyClass。雖然MyClass中的字段A可能爲空,並且我不想在序列化期間略過A,即使它爲空也是如此。然後,當我嘗試反序列化JSON字符串時,我得到了NPE。我認爲這是因爲Json字符串沒有用於映射器的「類型」來查找子類型。有沒有辦法解決這個問題?

回答

-2

其實這與傑克遜很好。 NPE是由我自己的構造者拋出的。

相關問題