一尘不染

接口内的枚举实现-Java

java

我有一个关于在接口中放置Java枚举的问题。为了使其更清楚,请参见以下代码:

public interface Thing{
   public enum Number{
       one(1), two(2), three(3);
       private int value;
       private Number(int value) {
            this.value = value;
       }
       public int getValue(){
        return value;
       }
   }

   public Number getNumber();
   public void method2();
   ...
}

我知道一个接口由带有 空主体
的方法组成。但是,我在这里使用的枚举需要一个构造函数和一个方法来获取关联的值。在此示例中,建议的接口将不仅包含空主体的方法。是否允许这种实现?

我不确定是否应该将枚举类放入接口或实现此接口的类中。

如果将枚举放入实现此接口的类中,则方法public Number getNumber()需要返回枚举的类型,这将迫使我将枚举导入接口。


阅读 234

收藏
2020-12-03

共1个答案

一尘不染

在中有一个enum声明是完全合法的interface。在您的情况下,该接口仅用作枚举的命名空间,仅此而已。无论您在哪里使用该接口,都可以正常使用。

2020-12-03