如何将 int 与 enum 匹配

发布于 2024-12-13 06:40:53 字数 74 浏览 0 评论 0原文

我从 Android 中的本机代码接收 long 或 int 形式的返回值,我想将其转换或与枚举匹配,以进行处理。是否可以 ? 如何?

I am receiving return value in the form of long or int from Native code in Android, which I want to convert or match with enum, for processing purpose. Is it possible ?
How?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

人间不值得 2024-12-20 06:40:53

如果您可以完全控制值和枚举,并且它们是连续的,则可以使用枚举序数值:

enum Heyo
{
  FirstVal, SecondVal
}

...later

int systemVal = [whatever];
Heyo enumVal = Heyo.values()[systemVal];

int againSystemVal = enumVal.ordinal();

If you have full control of values and enums, and they're sequential, you can use the enum ordinal value:

enum Heyo
{
  FirstVal, SecondVal
}

...later

int systemVal = [whatever];
Heyo enumVal = Heyo.values()[systemVal];

int againSystemVal = enumVal.ordinal();
慈悲佛祖 2024-12-20 06:40:53

您可以设置枚举,使其内置 long 或 int 。

例如: 创建此文件 ePasswordType.java

public enum ePasswordType {

    TEXT(0),
    NUMBER(1);

    private int _value;

    ePasswordType(int Value) {
        this._value = Value;
    }

    public int getValue() {
            return _value;
    }

    public static ePasswordType fromInt(int i) {
        for (ePasswordType b : ePasswordType .values()) {
            if (b.getValue() == i) { return b; }
        }
        return null;
    }
}

然后,您可以像这样访问分配的值:

ePasswordType var = ePasswordType.NUMBER;

int ValueOfEnum = var.getValue();

要在只知道 int 时获取枚举,请使用:

ePasswordType t = ePasswordType.fromInt(0);

java 中的枚举非常强大,因为每个值都可以它自己的班级。

You can set up your enum so it has the long or int built into it.

e.g: Create this file ePasswordType.java

public enum ePasswordType {

    TEXT(0),
    NUMBER(1);

    private int _value;

    ePasswordType(int Value) {
        this._value = Value;
    }

    public int getValue() {
            return _value;
    }

    public static ePasswordType fromInt(int i) {
        for (ePasswordType b : ePasswordType .values()) {
            if (b.getValue() == i) { return b; }
        }
        return null;
    }
}

You can then access the assigned values like this:

ePasswordType var = ePasswordType.NUMBER;

int ValueOfEnum = var.getValue();

To get the enum when you only know the int, use this:

ePasswordType t = ePasswordType.fromInt(0);

Enums in java are very powerful as each value can be its own class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文