比较枚举java中的值

时间:2015-02-10 15:59:22

标签: java enums

所以这是我的情况我将WallEnums的两种情况与其他情况进行比较。

import static com.gowallgo.enumtypes.WallEnums.CAW;
"" ( and the rest )


   /**
     * {@link Set} of cancel {@link WallEnums}s
     */
    private static final Set<WallEnums> WALL_CODES = asSet(RES, CAW, AAP, ASV, CQP, OQR);


// more stuff and then I use it here . 

if (wallEnum != WALL_CODES.contains(wallEnum)){}

这需要重构。我应该从哪里开始,所以我不需要为每个代码进行静态导入?

3 个答案:

答案 0 :(得分:2)

如果您不想导入每个枚举值,可以使用

import com.gowallgo.enumtypes.WallEnums

WallEnums enum = WallEnums.RES;  //Now you have to use EnumName.VALUE

答案 1 :(得分:1)

您不必导入每个枚举类型,您可以尝试使用以下方法导入枚举的每个元素:

import static com.gowallgo.enumtypes.WallEnums.*;

答案 2 :(得分:1)

使用EnumSet

// Do not import anything

// This creates a Set that contains all posible values
// In case you need a subset use: EnumSet.of(WallEnums.RES, WallEnums.CAW, etc)
private static final Set<WallEnums> WALL_CODES = EnumSet.allOf(WallEnums.class);

// Later...
if (WALL_CODES.contains(someWallEnum)) {
    // Do stuff if someWallEnum belongs to WALL_CODES set
}

此代码使用优化的EnumSet类创建一组枚举。然后,您可以像往常一样使用任何Set操作,即contains()