Java 枚举类型 - 自打印枚举
我正在尝试编写一个java函数,该函数将枚举类型(基于控制台的菜单系统的一部分)作为参数。然后,该函数将打印枚举中的所有字符串表示形式。
枚举看起来像这样:
protected enum main{
Option1,
Option2,
Option3,
...
OptionN,
}
我的显示函数看起来像这样
public void displayMenu(Enum menu) {
// Get values from enum type
Enum menuOps = menu.values();
// Iterate over values and print
for(int i =0 ; i < menuOps.length; i++)
System.out.println( i + menuOps[i].toString() );
}
我的问题:显然我一定没有正确执行此操作。在这种情况下,“menu”参数对象没有 value() 方法。
期望的结果是 displayMenu() 函数的输出为: 有
Option1
Option2
Option3
...
OptionN
任何关于我在哪里出错的指示吗?关于如何实现此功能有什么建议吗?
非常感谢,
Noob
I'm trying to write a java function that takes as a parameter an enum type (part of a console based menuing system). This function will then print all of the string representations in the enum.
The enum looks like this:
protected enum main{
Option1,
Option2,
Option3,
...
OptionN,
}
My display function looks like this
public void displayMenu(Enum menu) {
// Get values from enum type
Enum menuOps = menu.values();
// Iterate over values and print
for(int i =0 ; i < menuOps.length; i++)
System.out.println( i + menuOps[i].toString() );
}
My problem: Apparently I must not be doing this correctly. The "menu" parameter object doesn't have a values() method in this scenario.
The desired outcome would be the displayMenu() function having an output of:
Option1
Option2
Option3
...
OptionN
Any pointers on where I'm going wrong with this? Any tips on how to implement this functionality?
Much obliged,
Noob
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
因为您的 print 方法不依赖于 concreate 枚举实例,所以它应该基于 concreate 枚举类,而不是此类的实例
Because your print method is not dependend on a concreate enum instance, it should be based on a concreate enum class, not on an instance of this class
它并不完全那样工作,枚举条目不知道其他条目。您必须查阅包含的类:
这是该方法的通用版本:
It doesn't quite work that way, an Enum entry doesn't know about the other entries. You have to consult the containing class:
Here's a Generic version of the method:
迁移
到
Migrate
to