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类,因此完全适合为它们创建单独的类文件


在我看来,它绝对更清晰、更容易搜索。

你可以在同一个文件中公开它。哇,我错过了。谢谢