实例化枚举类

2022-09-02 14:19:21

考虑我有以下枚举类,

public enum Sample {
    READ,
    WRITE
}

在下面的课程中,我正在尝试测试枚举类,

public class SampleTest {
    public static void main(String[] args) {
        testEnumSample(Sample.READ);
    }

    public static void testEnumSample(Sample sample) {
        System.out.println(sample);
    }
}

在这里,我指定然后将其作为参数传递给方法 。相反,如果我们想实例化枚举类并将其作为参数传递,我们需要做什么?Sample.READtestEnumSample


答案 1

在这里,我需要指定 Sample.READ 以将其作为参数传递。相反,如果我们想实例化枚举类并将其作为参数传递,我们需要做什么?

“实例化枚举类”到底是什么意思?枚举的要点是有一组固定的值 - 以后无法创建更多值。如果要这样做,则不应使用枚举。

不过,还有其他方法可以获得枚举值。例如,您可以获取首次声明的值:

testEnumSample(Sample.values()[0]);

或者可能传入名称并使用:Sample.valueOf

testEnumSample("READ");

...

Sample sample = Sample.valueOf(sampleName);

如果你解释了你想要实现的目标,这将使帮助你更容易。


答案 2

在内部,枚举将被翻译成类似这样的东西

class Sample extends Enum {
    public static final Sample READ = new Sample("READ", 0);
    public static final Sample WRITE = new Sample("WRITE", 1);

    private Sample(String s, int i)
    {
        super(s, i);
    }

    // More methods, e.g. getter
}

它们不应该也不能被初始化。