枚举的Java字符串

时间:2011-05-18 12:49:34

标签: java enums

我有这个类构造函数AppData(Map params, Operations operation)
其中操作

public enum Operations 
{
create,update,delete,view,compare
}

如何使用参数构造函数实例化AppData?

对于map参数,我可以从servlet获得它,(req.getParameterMap())
但对我来说主要的问题是知道操作类型,它也来自map参数,所以为了做到这一点AppData data=new AppData(req.getParameterMap(),op);我要分配给op或者op应该是什么输入?

注意:我可以使用iterator和Map.Entry object.getKey()和Value

create获取字符串updatereq.getParameterMap() ....

1 个答案:

答案 0 :(得分:3)

假设您开始使用字符串(例如"update"),则可以使用Enum.valueOf。您的Operations枚举将继承其形式,因此:

Operations op = Operations.valueOf(theString);

...或者使用Enum中的那个,但如果您没有Operations的直接编译时访问权限,那么您只需要这样做。我认为你确实有编译时访问权限,所以使用上面的内容。但为了完整性:

Object op = Enum.valueOf(Class.forName("Operations"), theString);