如果我已经正确理解了枚举,一个很好的例子就是用它们来存储扑克牌套件,而不是四个魔术数字或四个静态最终整数。
public class Card {
// ...
private enum CARD_SUITE { HEARTS, DIAMONDS, CLUBS, SPADES; }
}
但是如果Card
的公共方法需要套件作为参数,例如, isSuite(CARD_SUITE suite)
?枚举对于类来说是私有的。为该单行创建新文件感觉非常不必要。这是怎么解决的?
答案 0 :(得分:5)
您可以在同一个类中创建public
,只应在单独的Java文件中定义public class
。
public class Card {
// ...
public enum CARD_SUITE { HEARTS, DIAMONDS, CLUBS, SPADES; }
}
然后,您可以访问enum
,Card.CARD_SUITE.HEARTS
,Card.CARD_SUITE.DIAMONDS
...
答案 1 :(得分:2)
当然,
将它放在单独的文件中。
并且将来尝试使用单独的文件enum
进行良好的代码维护。
但如果您只对一个班级使用enum
,请将其设为private
<强> ECardSuite.java 强>
public enum ECardSuite {
HEARTS,
DIAMONDS,
CLUBS,
SPADES; }
答案 2 :(得分:2)
您可以在Card类中使用公共CARD_SUITE枚举。如果枚举只是一个值列表,那就没有意义。
如果你的枚举有一些方法,实现了一些接口等,最好在它自己的文件中定义它。
答案 3 :(得分:1)
我个人将这些枚举公之于众。枚举属于该类(因此没有单独的文件),公开它是安全的(无论如何都不能改变它)。
答案 4 :(得分:1)
枚举是普通的Java类,因此为它们创建单独的类文件是完全正确的。
在我看来,搜索更清晰,更容易。