Java中的分层枚举

sco*_*f93 12 java enums hierarchical

假设我有这样的结构:

在此输入图像描述

是否可以创建一个将返回所选单元格的字符串值的枚举?例如:

enum.GROUP_MAIN1.SUBGROUP1.COL1
Run Code Online (Sandbox Code Playgroud)

将返回值"COL1".

我一直在寻找嵌套的枚举,但没有找到解决这种情况的方法.

sod*_*ody 8

你可以用这样的技巧做到这一点:

public interface GROUPMAIN1 {
    enum SUBGROUP1 implements GROUPMAIN1 {
        COL1,
        COL2,
        COL3
    }
    enum SUBGROUP2 implements GROUPMAIN1 {
        COL3,
        COL4
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,要获得枚举,您需要使用GROUPMAIN1.SUBGROUP1.COL1.

如果你只需要一个字符串常量,它也可以用另一种方式完成:

public interface GROUPMAIN1 {
    interface SUBGROUP1 {
        String COL1 = "COL1";
        String COL2 = "COL2";
    }
    interface SUBGROUP2 {
        String COL3 = "COL3";
        String COL4 = "COL4";
    }
}
Run Code Online (Sandbox Code Playgroud)