如何使用枚举值启动HashSet?

时间:2018-01-04 19:43:26

标签: java enums hashset

我正在使用带有带有enumaration参数的HashSet的方法的库,而我无法调用该方法。我认为这个问题可能是我认为最简单的问题,但我有两天这个问题。 按照库中的方法:

public int searchCard(HashSet<CardSlotTypeEnum> var1, int var2, OnCardInfoListener var3) {
    if(var2 >= 0 && var3 != null) {
        u.a().a(var1, var2, var3);
        return 0;
    } else {
        return -2;
    }
}

遵循确认CardSlotTypeEnum:

public enum CardSlotTypeEnum {
    ICC1,
    ICC2,
    ICC3,
    PSAM1,
    PSAM2,
    PSAM3,
    RF,
    SWIPE,
}

按照我的代码:

reader = deviceEngine.getCardReader();
OnCardInfoListener info = new OnCardInfoListener() {};
HashSet<CardSlotTypeEnum> teste = new HashSet<CardSlotTypeEnum>();

reader.searchCard(teste,60,info);

我在初始化'teste'变量时遇到了问题,这种方式是唯一没有向我提供错误信息的方式,但在这种情况下'teste'没有收到任何错误。

如果有人能帮助我,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

这个图书馆使用的是HashSet而不是EnumSet,这有点奇怪,但是,如果这就是你所坚持的,那么就这样吧。

创建EnumSetenum中包含所有值的HashSet非常容易。然后,您可以很容易地创建EnumSet<CardSlotTypeEnum> enums = EnumSet.allOf(CardSlotTypeEnum.class); HashSet<CardSlotTypeEnum> teste = new HashSet<>(enums);

HashSet<CardSlotTypeEnum> teste = new HashSet<>();
teste.add(CardSlotTypeEnum.RF);
teste.add(CardSlotTypeEnum.SWIPE);

修改

如果您只想将特定的枚举常量添加到集合中,您可以手动执行此操作:

{{1}}