java - 从可能的多种类型中保存单个枚举值

标签 java enums

我需要制作一个 Java 类,它可以从多个枚举值中接收单个枚举值。例如:

public class MyClass
{
    public enum enumA {..}
    public enum enumB {..}
    public enum enumC {..}
    public enum enumD {..}

    private OneOfTheEnumsAboveMember enumMember;
}

由于无法扩展枚举,我如何定义一个必须是枚举之一的成员?

最佳答案

枚举不能扩展,但可以实现接口(interface)。你可以有一个空的标记接口(interface)(或者更好 - 让它包含你实际需要的方法),并使它成为你的成员的类型:

public class MyClass {
    public static interface EnumInterface {}
    public enum enumA implements EnumInterface {..}
    public enum enumB implements EnumInterface {..}
    public enum enumC implements EnumInterface {..}
    public enum enumD implements EnumInterface {..}

    private EnumInterface enumMember;
}

关于java - 从可能的多种类型中保存单个枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35792385/

相关文章:

java - 从文件中读取 Shorts 和字符

Java - Future.get() 多次调用

java电子邮件附件在正文中以纯文本形式发送

jquery - 将枚举值传递到jQuery网格过滤器

types - 如何对依赖和嵌套求和类型进行建模?

python - 如何使用枚举或字符串进行过滤并获得相同的结果?

java - Jasper Reports 中的空白子报表

java - setText() 使 Activity 崩溃

ios - 具有自定义对象原始值的 Swift 枚举

switch 语句中的 Java 非常量表达式