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。有没有可能的解决方法?也许对于一个空的占位符yangbad之前yingood在此示例中定义的?

回答:

您可以尝试类似:

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

回到顶部