java 枚举数组的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 枚举数组的问题相关的知识,希望对你有一定的参考价值。
public static void main(String[] args)
String name="B";
Grade g = Grade.valueOf(Grade.class, name);
Grade gs[] = Grade.values();
for(Grade g1 : gs)
System.out.println(g1.name());
enum Grade
A,C;
为什么输出这个枚举数组 只有我原来在类定义的A,C 没有B呢
对于关键字,api没有列出其介绍。
enum Color//枚举常量
red,green,black
Color colors[]=Color.values(); 参考技术A values()是枚举定义的一个静态方法。
示例代码:
enum A
b,a;
static final class A extends Enum
public static A[] values()
A aa[];
int i;
A aa1[];
System.arraycopy(aa = ENUM$VALUES, 0, aa1 = new A[i = aa.length], 0, i);
return aa1;
public static A valueOf(String s)
return (A)Enum.valueOf(com/taobao/et/biz/Test$A, s);
public static final A b;
public static final A a;
private static final A ENUM$VALUES[];
static
b = new A("b", 0);
a = new A("a", 1);
ENUM$VALUES = (new A[]
b, a
);
private A(String s, int i)
super(s, i);
两个静态方法“隐藏”在所有枚举类型声明中。因为它们是枚举子类上的静态方法,而不是Enum本身的方法,所以它们在java.lang.Enum的javadoc中没有出现。
第一个是values(),返回一个枚举类型所有可能值的数组。
第二个是valueOf(String arg0),为提供的字符串返回一个枚举类型,该枚举类型必须精确地匹配源代码声明。
Java枚举可以迭代吗? [复制]
【中文标题】Java枚举可以迭代吗? [复制]【英文标题】:Can Java enum be iterated? [duplicate] 【发布时间】:2013-12-21 05:15:43 【问题描述】:我可以执行me[1]
或MyEnum[1]
之类的操作吗?如果我有:
enum MyEnum e1,e2,e3,e4;
//...
MyEnum me;
我已经尝试过了,但它似乎会产生错误。是另一种方式吗,还是我可以只使用MyEnum.e2
之类的东西?
【问题讨论】:
YourEnum.values()
并迭代数组。
【参考方案1】:
Java 枚举可以迭代吗?
是的,enum
可以用values()
方法迭代
for(MyEnum myenum: MyEnum.values())
// ..
我可以做类似 me[1] 或 MyEnum[1] 的事情吗?
MyEnum.values()
return MyEnum[]
可以放索引的地方
MyEnum[] me=MyEnum.values();
MyEnum secVal= me[1]; //it will return e2.
【讨论】:
【参考方案2】:MyEnum.values()
是您可能正在寻找的。p>
【讨论】:
是的,就是这样!谢谢。以上是关于java 枚举数组的问题的主要内容,如果未能解决你的问题,请参考以下文章
java里枚举类型用于返回一个数组的方法values()在哪个里啊?