我正在尝试打印出这个Enum
private enum Menu
{
Insert("Insert"),
Search("Search"),
Size("Size"),
Height("Height"),
Clear("Clear"),
Inorder("Inorder"),
Preorder("Preorder");
private String description;
Menu()
{
this.description = this.name();
}
Menu(String name)
{
this.description = description;
}
public String toString()
{
return description;
}
}
使用这个:
Menu[] menu = Menu.values();
for(Menu m: menu)
{
System.out.printf("%d) %s%n", m.ordinal() + 1, m);
}
我的结果是:
Choose an option to complete
1) null
2) null
3) null
4) null
5) null
6) null
7) null
我怎么能解决这个问题?这是我第一次使用枚举,而我正在努力弄清楚为什么我会这么做。
答案 0 :(得分:4)
基本上,您要为自己分配description
(null
)的值...
更改
Menu(String name) {
this.description = description;
}
要
Menu(String name) {
this.description = name;
}
答案 1 :(得分:2)
以下可能是您想要的(并且您不需要arg构造函数) -
Menu(String d) {
this.description = d;
}
否则,toString()
默认返回枚举时的名称。
答案 2 :(得分:0)
加
答案 3 :(得分:0)
这将有效
Menu[] menu = Menu.values();
for(Menu m: menu)
{
System.out.printf("%d) %s%n", m.ordinal() + 1, m.name());
}