java 枚举数组的问题

publicstaticvoidmain(String[]args){Stringname="B";Gradeg=Grade.valueOf(Grade.class,na... 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呢
展开
 我来答
碧血玉叶花
推荐于2016-09-27 · TA获得超过4976个赞
知道大有可为答主
回答量:6154
采纳率:0%
帮助的人:1722万
展开全部
枚举enum是关键字,和private、public等一样是关键字,不是enum类,
对于关键字,api没有列出其介绍。

enum Color{//枚举常量
 red,green,black
}

Color colors[]=Color.values();
nanwang21
推荐于2016-06-30 · TA获得超过2943个赞
知道大有可为答主
回答量:1220
采纳率:82%
帮助的人:242万
展开全部
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),为提供的字符串返回一个枚举类型,该枚举类型必须精确地匹配源代码声明。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式