【问题标题】:Is it possible to have ENUM with zero elements是否可以有零元素的 ENUM
【发布时间】:2013-10-22 08:39:51
【问题描述】:

我的界面如下所示:

public interface DatabaseTable {

    public void onDatabaseCreate(SQLiteDatabase database);

    public void onDatabaseUpgrade(SQLiteDatabase database, int oldVersion, int newVersion);

    public String getName();

    public Column[] getColumns();

    public int insert(SQLiteDatabase database, ContentValues values);

    public int delete(SQLiteDatabase database, String selection, String[] selectionArgs);

    public static interface Column {

        public String getName();

        public String getType();
    }
}

我知道 Enums 可以实现接口。如果我要将此接口实现为 Enum,我将不得不像使用 Enum 单例 (DatabaseTableImpl.INSTANCE.getName()) 一样使用它。我可以有一个零元素枚举,以便它可以像只包含静态方法的类一样实现和使用(DatabaseTableImpl.getName())?

【问题讨论】:

  • 你尝试的时候发生了什么?您的编译器是此类问题的 100% 可靠答案来源,延迟时间约为 30 秒。相反,在这里询问并不是一个合理的发现程序。
  • 如果你想要枚举单例,那么你需要一个元素的枚举,而不是零元素。
  • 为什么要将接口写成enum
  • 听起来你太聪明了,没有遵守 KISS 原则。
  • @Julius B.“普通类无法实现静态方法”毫无意义。静态方法不能以需要实现的方式定义,但“普通类”当然可以定义静态方法。你在这里没有多大意义,你仍然在浪费时间而不是咨询你的编译器。

标签: java enums


【解决方案1】:

ENUM 是否可以包含零个元素

是的。您总是可以自己尝试,而不是浪费时间在这里询问。

如果我要将此接口实现为枚举

你不能。一个类不能既是接口又是enum.

这个问题和上一个问题之间的关系让我无法理解。

我必须像使用 Enum 单例一样使用它

这对我来说毫无意义。

我可以有一个零元素枚举,以便它可以像只包含静态方法的类一样实现和使用

再一次,为什么不试试呢?并不是说我了解它将如何解决您的实际问题,不管那是什么。

【讨论】:

    猜你喜欢
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-19
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多