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