虽然这是一个常见问题,但我找不到任何解决方案。
有一个枚举,类似
public enum MyEnum { C, G, A, T, U }
我需要将一个枚举实例与另一个进行比较,如下所示:
C complements G
G complements C
A complements T
T complements A
U complements T
T complements U
如果不写这样的代码我怎么能做到:
public boolean complements(MyEnum other) {
if(this.compareTo(C) == 0) {
if(other.compareTo(G) {
return true;
} else return false;
}
...
}
提前致谢。
最佳答案
为什么不用 complements
字段?你可以让它成为 EnumSet
.
enum MyEnum {
G, C, A, T, U;
static {
C.complements = EnumSet.of(G);
G.complements = EnumSet.of(C);
A.complements = EnumSet.of(T);
T.complements = EnumSet.of(A, U);
U.complements = EnumSet.of(T);
}
private EnumSet<MyEnum> complements;
public boolean complements(MyEnum other) {
return complements.contains(other);
}
}
关于java - 以任何顺序比较值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18857068/