比较枚举java中的值

比较枚举java中的值,java,enums,Java,Enums,这是我的情况,我比较了Wallenum的两种情况和其他情况 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

这是我的情况,我比较了Wallenum的两种情况和其他情况

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)){}

导入静态com.gowallgo.enumtypes.WallEnums.CAW;
“”(及其他)
/**
*取消{@link wallenms}的{@link Set}
*/
专用静态最终设置墙代码=资产(RES、CAW、AAP、ASV、CQP、OQR);
//更多的东西,然后我在这里使用。
如果(wallEnum!=WALL_code.contains(wallEnum)){

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

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

import com.gowallgo.enumtypes.WallEnums

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

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

import static com.gowallgo.enumtypes.WallEnums.*;
使用:

//不要导入任何内容
//这将创建一个包含所有可能值的集合
//如果需要子集,请使用:EnumSet.of(WallEnums.RES、WallEnums.CAW等)
私有静态最终集WALL_code=EnumSet.allOf(WallEnums.class);
//后来。。。
if(墙代码包含(someWallEnum)){
//如果someWallEnum属于WALL\u代码集,则执行这些操作
}

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

您不喜欢什么?
导入静态com.gowallgo.enumtypes.WallEnums.
?使用
Enum.values()
?这应该做什么
if(wallEnum!=WALL_CODES.contains(wallEnum)){}
将枚举值与布尔值进行比较?@tom这里没有足够的内容可以查看代码环境不允许使用星号导入(idk why,只是其中一个小故障类型)我应该提到这一点。
// 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
}