2011-04-10 146 views
0

我想知道什么是错我的代码枚举在Java中

public static enum e_option 
{ 
     HELP, 
     AUTHOR, 
     PROJ_NAME, 
     DESC, 
     MAIN_CLASS_NAME, 
     BASE_DIR, 
     XML_NAME, 
     RULE_OPT, 
     UNKNOWN 
} 

的,我有这种方法是

public e_option s2i(String arg) 
    { 
     e_option opt = null; 
     if (arg.equals("--help")) 
     { 
      opt = HELP; 
     } 
     if (arg.equals("--author")) 
     { 
      opt = AUTHOR; 
     } 

    } 

问题是日食不承认帮助和作者。它建议我创建新的常量,它是bizzare。

+0

抱歉的格式,通常stackoverflow自动识别代码 – Dung 2011-04-10 20:46:26

+3

SO不*自动识别代码。正如您在提问时在帮助框中所述,“►按4个空格缩进代码”。如果您的代码已经在每行上缩进至少4个空格(并且代码前面有一个空行),它就会起作用。在你的情况下,你有几行没有缩进的行,所以它不起作用。 – Gabe 2011-04-10 20:48:40

回答

1

为了得到一个enum的价值,你必须使用它的名字:

opt = e_option.HELP; 
0

你为什么不尝试,而不是帮助e_option.HELP?

0

你需要指定枚举名称:

opt = e_option.HELP; 
+0

感谢它的工作 – Dung 2011-04-10 21:09:44

0

别的不说,这是错误的,你答应返回e_option,但你不这样做。

+0

我会这样做其实我不显示所有的代码来简化演示文稿 – Dung 2011-04-10 21:15:45

+0

这是高贵的,但你应该确保你的简化不会引入新的错误。复制/粘贴精简的编译器消息也是一个好主意。太常见的人会看到像这样的问题:* Plz帮助,为什么编译器错误?!?!*后面跟着几十行代码。你的情况稍好一些,但仍然可以得到保护。 – Ingo 2011-04-10 23:00:09