有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

编码风格Java枚举应该在它们自己的文件中定义吗?

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

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

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


共 (3) 个答案

  1. # 1 楼答案

    可以在同一个类中设置public,只有public class应该在单独的Java文件中定义

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

    然后你可以访问enumCard.CARD_SUITE.HEARTSCard.CARD_SUITE.DIAMONDS

  2. # 2 楼答案

    你可以在你的CARD类中有一个公共CARD_SUITE枚举。如果枚举只是一个值列表,那么它是有意义的

    如果您的枚举有一些方法、实现一些接口等,那么最好在自己的文件中定义它

  3. # 3 楼答案

    枚举是普通的Java类,所以为它们创建一个单独的类文件是完全合适的

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