Java枚举-在定义字段之前无法引用它
我有一个像下面这样的枚举,但是蚀说每个相对的对的第一个定义中都有错误。
public enum Baz{ yin(yang), //Cannot reference a field before it is defined
yang(yin),
good(evil), //Cannot reference a field before it is defined
evil(good);
public final Baz opposite;
Baz(Baz opposite){
this.opposite = opposite;
}
}
我想要完成的是能够Baz.something.opposite
用来获取的 相反
对象Baz.something
。有没有可能的解决方法?也许对于一个空的占位符yang
和bad
之前yin
和good
在此示例中定义的?
回答:
您可以尝试类似:
public enum Baz{ yin("yang"),
yang("yin"),
good("evil"),
evil("good");
private String opposite;
Baz(String opposite){
this.opposite = opposite;
}
public Baz getOpposite(){
return Baz.valueOf(opposite);
}
}
然后引用为
Baz.something.getOpposite()
通过以字符串表示形式查找枚举值,应该可以完成您想要的工作。我认为您无法将其与对Baz的递归引用一起使用。
以上是 Java枚举-在定义字段之前无法引用它 的全部内容, 来源链接: utcz.com/qa/413333.html