c# - Java中具有int值的枚举

标签 c# java enums

C# 的 Java 等价物是什么:

enum Foo
{
  Bar = 0,
  Baz = 1,
  Fii = 10,
}

最佳答案

如果您想要 enum 的属性,您需要像这样定义它:

public enum Foo {
    BAR (0),
    BAZ (1),
    FII (10);

    private final int index;   

    Foo(int index) {
        this.index = index;
    }

    public int index() { 
        return index; 
    }

}

你会这样使用它:

public static void main(String[] args) {
    for (Foo f : Foo.values()) {
       System.out.printf("%s has index %d%n", f, f.index());
    }
}

要意识到的是,enum 只是创建类的快捷方式,因此您可以向该类添加任何您想要的属性和方法。

如果您不想在 enum 上定义任何方法,您可以更改成员变量的范围并将它们设为 public,但这不是他们所做的在 example on the Sun website .

关于c# - Java中具有int值的枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1681976/

相关文章:

c - VS2015 中 C 代码中的无作用域枚举

c# - 将多个 Caliburn.Micro View 模型绑定(bind)到同一 View 的不同实例

c# - 局部变量在 Visual Studio 2010 中出现超出范围

java - 如何使用 JNA 处理 Fortran RTL 错误?

java - 如何比较 java.security.cert.X509Certificate 的不同实现

java - (Error : valueOf(Class<T>, String) of type Enum<E> but does not hide it)升级版本从jdk1.6到jdk1.7

c# - 更改所有者并删除所有权限后,文档在“我的云端硬盘”中仍然可见

c# - 如何使用 join 加速 LINQ 查询?

java - startActivityForResult 并替换子 Activity

c# 枚举函数参数