gpt4 book ai didi

java - 如何在 Java 中删除标志

转载 作者:IT老高 更新时间:2023-10-28 21:21:26 25 4
gpt4 key购买 nike

您好,我需要在 Java 中删除一个标志。我有以下常量:

public final static int OPTION_A = 0x0001;
public final static int OPTION_B = 0x0002;
public final static int OPTION_C = 0x0004;
public final static int OPTION_D = 0x0008;
public final static int OPTION_E = 0x0010;
public final static int DEFAULT_OPTIONS =
OPTION_A | OPTION_B | OPTION_C | OPTION_D | OPTION_E;

我想从默认选项中删除,例如 OPTION_E。为什么下面的代码不正确?

// remove option E from defaul options:
int result = DEFATUL_OPTIONS;
result |= ~OPTION_E;

最佳答案

|= 执行按位,因此您实际上是在“添加”除 OPTION_E 之外的所有标志。您希望 &=(按位 and)表示您希望保留OPTION_E 之外的所有标志:

result &= ~OPTION_E;

但是,更好的方法是使用枚举和 EnumSet开始:

EnumSet<Option> options = EnumSet.of(Option.A, Option.B, Option.C,
Option.D, Option.E);
options.remove(Option.E);

关于java - 如何在 Java 中删除标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7595701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com