我正在设计一个纯文本视频游戏,其中有两个不常见的角色,但在内心和性格上却非常相似。
我的问题是我不知道如何enum
使用静态最终内部常量通过构造函数初始化常量。否则游戏很好。;)
这是困境:
- 枚举常量必须定义在枚举的第一行,如果我没记错的话
- 第一行不能引用后面的任何内容(即“在定义之前不能引用字段”)
我该如何解决这个catch-22?
以下是根据保密协议从游戏中发布的一些示例代码:
enum ValiantHeroWithPrincessSavingTendencies {
SUPERMARIO(TYPICAL_QUOTE_FROM_MARIO), ZELDA(TYPICAL_QUOTE_FROM_ZELDA);
private String aPreparedQuotePurportedToBeSpontaneousAlmostImpulsive;
public String getQuoteUnderStressfulCircumstances() {
return aPreparedQuotePurportedToBeSpontaneousAlmostImpulsive;
}
private ValiantHeroWithPrincessSavingTendencies(String quote) {
aPreparedQuotePurportedToBeSpontaneousAlmostImpulsive = quote;
}
private static final String TYPICAL_QUOTE_FROM_ZELDA = "Have at ya!";
private static final String TYPICAL_QUOTE_FROM_MARIO = "We, wagliu'!";
}
我正在尝试使用 TYPICAL_QUOTE_FROM_MARIO 初始化 SUPERMARIO,但我还没有定义 TYPICAL_QUOTE_FROM_MARIO。我认为在 SUPERMARIO 之前移动私有静态最终字段是非法的。