为什么允许枚举枚举的枚举?

时间:2014-09-14 20:40:26

标签: java syntax enums

我无法理解为什么这甚至编译。 我尝试过不同的格式,它们似乎都有用..

为什么拥有enum of enum of enum of..

是合法的
interface I {

    enum E implements I {
        VAL;
    }

    class Test {
        I.E         f1 = I.E.VAL;
        I.E.E       f2 = I.E.VAL;
        I.E.E.E     f3 = I.E.VAL;
        I.E.E.E.E.E f4 = I.E.VAL;

        I.E v1 = I.E.VAL;
        I.E v2 = I.E.E.VAL;
        I.E v3 = I.E.E.E.E.E.E.VAL;
        I.E v4 = I.E.E.E.E.E.E.E.E.E.E.VAL;
    }
}

我的IDE报告它编译得很好,虽然I.E.E对我来说没有意义。

1 个答案:

答案 0 :(得分:11)

您的I界面包含名为E的枚举类型。

此类型实现相同的I接口,因此它继承了该接口包含的所有内容 这包括E类型本身。

换句话说,I.E.E正在访问来自I.E外部的E继承的I