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