从两种枚举类型之一实例化EnumSet

暗影地狱

我将两个枚举声明为:

public enum EnumOne implements EnumInterface {
    SomethingHere,
    SomethingThere;
    public void someMethod () { }
}

public enum EnumTwo implements EnumInterface {
    SomethingOverYonder;
    public void someMethod () { }
}

如此处所示,它们都实现了此接口。

public Interface EnumInterface {
     someMethod();
}

我在这里定义了一个包含EnumSet的类,该类将从Enum1或Enum2获取所有元素。这将通过以索引为参数的方法进行定义。像这样:

public class SomeClass {
    private EnumSet someEnum;
    public void setEnumType (int index) {
        switch (index) {
        case 1:
            someEnum = EnumSet.allOf(EnumOne.class);
            break;
        case 2:
            someEnum = EnumTwo.allOf(EnumTwo.class);
            break;
        }
    }
}

现在,我知道我必须以某种方式使用泛型来完成此操作,但是由于我对它还不熟悉,我不知道该怎么做,希望您能给我一些启发。

预先感谢您的回答。

newacct

不清楚您在寻找什么,但是如果您只想someEnum不使用原始类型进行声明,则可以使用:

public class SomeClass {
    private EnumSet<? extends EnumInterface> someEnum;
    public void setEnumType (int index) {
        switch (index) {
        case 1:
            someEnum = EnumSet.allOf(EnumOne.class);
            break;
        case 2:
            someEnum = EnumSet.allOf(EnumTwo.class);
            break;
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

c函数返回两种可能的类型之一

变量(枚举?)在Swift 2中持有两种类型之一

当类型可以是两种不同事物之一时的设计选项

自动检测两种返回类型之一

如何获得类似C ++模板的行为,但只允许实例化两种特定类型?

断言两种不同类型的枚举是等效的

这是两种不同类型的枚举吗?

PHPUnit声明两种可能结果之一

用一种类型参数化的方法接受两种类型

如何使用Aeson解析JSON字符串,它可以是两种不同类型之一

接受两种类型之一的泛型类

返回Typescript中两种类型之一的方法

返回两种类型之一的对象

这两种JavaScript模式中的哪一种更适合实例化对象?

Java枚举:两种枚举类型,每种包含彼此的引用?

对具有两种类型的字段的Json进行反序列化,而一种类型是递归的

一个片段有两种显示类型

一次通话两种不同的内容类型

如何使用GO语言读取HDF5属性,该属性可能是两种不同数据类型之一?

为什么将枚举数组强制转换为两种不同的IEnumerable <T>类型?

两种动画之一在页面加载jQuery上不起作用

C:如何使scanf()输入具有以下两种格式之一?

如何使用两种条件之一分割线?

编写使用类的两种实现之一进行编译的Java代码

选择在SQL Server查询中具有两种可能性之一的记录

Springs MockMvc以两种仅略有不同的方法之一返回空内容

Nest JS Guards-使用以下两种策略之一

正则表达式:匹配两种模式之一

C ++ 11通过以下两种算法之一完成任务