使用jersey如何为一个字段设置多个setter

evrscar2  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(343)

所以我使用jersey来反序列化一些发送到api的输入。最初,一个特定的字段是一个数值,现在是一个字符串值。我想知道是否有一种方法可以为该字段设置多个setter,因为我不想打断那些已经使用旧格式api的人。提前谢谢你。
我尝试做的示例:

public class MyInput {
  private String clientId;

  public String getClientId() {return clientId;}
  public void setClient(Number clientId) {this.clientId = Long.toString(clientId.longValue());}
  public void setClient(String clientId) {this.clientId = clientId;}
}
6rqinv9w

6rqinv9w1#

既然您已经提到您正在使用jackson作为您的数据绑定库,那么您可以注解希望jackson使用的setter(同时保留旧的setter)。

public class MyInput {
    private String clientId;

    public String getClientId() {return clientId;}
    public void setClient(Number clientId) {this.clientId = Long.toString(clientId.longValue());}

    @JsonSetter("clientId")
    public void setClient(String clientId) {this.clientId = clientId;}
}

相关问题