我有一个像吹一样的枚举类。我正在使用JAX-WS生成WSDL,但是我想对客户端隐藏DELETED枚举。有没有办法做到这一点?我尝试了@XmlTransient,但没有用。

@SuppressWarnings("restriction")
@XmlEnum(String.class)
public enum StatusEnum {
    ACTIVE,
    INACTIVE,
    DELETED,
}

最佳答案

从我的角度来看,如果出于某种原因您想从客户端隐藏一些枚举条目,则实际上有两个枚举,它们本质上是不同的-“内部”和“客户端”。您可以在枚举代码中轻松地从另一个权利中产生一个:

public enum StatusEnum {
  ACTIVE(ClientStatusEnum.ACTIVE),
  INACTIVE(ClientStatusEnum.INACTIVE),
  DELETED(ClientStatusEnum.HIDDEN);

  private ClientStatusEnum clientStatusEnum;

  StatusEnum(ClientStatusEnum cse) {
    this.clientStatusEnum = cse;
  }

  public ClientStatusEnum getClientStatusEnum() {
    return clientStatusEnum;
  }
}

@XmlEnum(String.class)
public enum ClientStatusEnum {
  ACTIVE,
  INACTIVE,
  HIDDEN;
}

09-08 11:51