4

如果我正确理解了枚举,那么一个很好的例子就是使用它们来存储扑克牌套件,而不是四个幻数或四个静态最终整数。

public class Card {
    // ...
    private enum CARD_SUITE { HEARTS, DIAMONDS, CLUBS, SPADES; }
}

但是如果一个公共方法Card需要一个套件作为参数呢,例如isSuite(CARD_SUITE suite)?枚举是类私有的。为那一行创建一个新文件感觉非常不必要。这是如何解决的?

4

5 回答 5

6

您可以public在同一个类中创建它,只有 publicclass应该在单独的 Java 文件中定义。

public class Card {
    // ...
    public enum CARD_SUITE { HEARTS, DIAMONDS, CLUBS, SPADES; }
}

然后你可以访问enumlike Card.CARD_SUITE.HEARTS, Card.CARD_SUITE.DIAMONDS...

于 2013-09-10T12:18:12.480 回答
2

当然,

只需将其放在单独的文件中。

并在将来尝试使用单独的文件enum来进行良好的代码维护。

但是如果你打算enum只用于一个类,设置它private

ECardSuite.java

public enum ECardSuite {
 HEARTS,
 DIAMONDS,
 CLUBS,
 SPADES; }
于 2013-09-10T12:17:45.200 回答
2

您可以在 Card 类中有一个公共 CARD_SUITE 枚举。如果枚举只是一个值列表,这是有道理的。

如果你的枚举有一些方法,实现了一些接口等,最好在自己的文件中定义它。

于 2013-09-10T12:19:18.450 回答
1

我个人公开了这样的枚举。枚举属于该类(因此没有单独的文件)并且将其公开是安全的(无论如何您都无法更改它)。

于 2013-09-10T12:19:16.570 回答
1

枚举是普通的 Java 类,因此为它们创建一个单独的类文件是完全正确的。

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

于 2013-09-10T12:19:31.890 回答