0

我有一个接口 A,它有两个具有不同 jsonproperty (参考:com.fasterxml.jackson.annotation.JsonProperty)名称的方法

public interface  A {
  @JsonProperty("field_1")
    String getField1();

    @JsonProperty("field_2")
    String getField2();
}

我需要再创建两个接口类 B 和 C,它们将从 A 继承。

B 想要包含 field_1 并丢弃 field_2,而 C 想要 field_2 并丢弃 field_1。此外,两者都希望为他们的首选字段提供相同的名称,比如“field_3”。

4

1 回答 1

0

您可以使用@JsonIgnore来丢弃字段,B并且C可以覆盖@JsonProperty如下A所示。

    public interface A {

    @JsonProperty("field_1")
    String getField1();

    @JsonProperty("field_2")
    String getField2();
}

public class B implements A {

    @Override
    @JsonProperty("field_B")
    public String getField1() {
        return "field1";
    }

    @Override
    @JsonIgnore
    public String getField2() {
        return "field2";
    }

}

public class C implements A {

    @Override
    @JsonIgnore
    public String getField1() {
        return "field1";
    }

    @Override
    @JsonProperty("field_C")
    public String getField2() {
        return "field2";
    }

}
于 2017-03-27T14:02:37.470 回答