我有一个枚举类,其值A,B。这是课程-
@XmlType(name = "MemberType")
@XmlEnum
public enum MemberType {
A,
B;
public String value() {
return name();
}
public static MemberType fromValue(String v) {
return valueOf(v);
}
}
我有另一个与此枚举类似的枚举类,其值A和B相同。此类是从我的WSDL生成的,并且无法控制其代码。我基本上想做的就是将两个枚举值相等。
基本上说MemberType.A = WSDLClass.A。这样的东西。有人可以帮帮我吗?
最佳答案
虽然无法将一种枚举类型分配给另一种类型(和you can't have enum extend some abstract superclass),但是可以声明一个静态方法(在MemberType
或某些实用程序类中),该方法从WSDLClass
映射到MemberType
:
public static MemberType fromWsdl(WSDLClass w) {
if (w==null) {
return null;
} else {
switch (w) {
case WSDLClass.A: return MemberType.A;
case WSDLClass.B: return MemberType.B;
default: return null;
}
}
}
然后您将使用该函数,如下所示:
import static xyz.MemberType.fromWsdl;
...
MemberType m = ...;
WSDLClass w = ...;
if (m.equals(fromWsdl(w))) ...