考虑我有以下枚举类,
public enum Sample {
READ,
WRITE
}
Run Code Online (Sandbox Code Playgroud)
在下面的课程中我试图测试枚举类,
public class SampleTest {
public static void main(String[] args) {
testEnumSample(Sample.READ);
}
public static void testEnumSample(Sample sample) {
System.out.println(sample);
}
}
Run Code Online (Sandbox Code Playgroud)
在这里我指定Sample.READ
然后将它作为参数传递给方法testEnumSample
.相反,如果我们想要实例化枚举类并将其作为参数传递给我们需要做什么?
Jon*_*eet 27
在这里,我需要指定Sample.READ将其作为参数传递.相反,如果我们想要实例化枚举类并将其作为参数传递给我们需要做什么?
什么"实例化枚举类"甚至意味着什么?枚举的要点是有一组固定的值 - 以后不能再创建.如果你想这样做,你不应该使用枚举.
还有其他获取枚举值的方法.例如,您可以获得第一个声明的值:
testEnumSample(Sample.values()[0]);
Run Code Online (Sandbox Code Playgroud)
或者传递名称并使用Sample.valueOf
:
testEnumSample("READ");
...
Sample sample = Sample.valueOf(sampleName);
Run Code Online (Sandbox Code Playgroud)
如果您解释了您想要实现的目标,那么它将更容易为您提供帮助.
Mar*_*arc 16
在内部,枚举将被翻译成这样的东西
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
}
Run Code Online (Sandbox Code Playgroud)
它们不应该也不能初始化.
检查我在另一篇文章中的答案。
有2种方法:
使用Enum.valueOf()
静态函数,然后将其转换为枚举类型。
Enum v = Enum.valueOf(TheEnumClass, valueInString);
Run Code Online (Sandbox Code Playgroud)
使用class.getEnumConstants()
函数获取枚举常量列表,然后循环该列表并获取。
Plugins[] plugins = Plugins.class.getEnumConstants();
for (Plugins plugin: plugins) {
// use plugin.name() to get name and compare
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
65252 次 |
最近记录: |