2010-05-16 70 views
4

我试图从下往上学习java,并且我得到了这本好书,可以阅读http://www.amazon.com/o/ASIN/0071591060/ca0cc-20。现在我发现,例如书籍有关声明一个类里,但任何方法之外枚举,所以我给它一个镜头:Java中的枚举编译错误

Enum CoffeeSize { BIG, HUGE, OVERWHELMING }; 

在这本书中的拼写enum,我得到这个编译消息Syntax error, insert ";" to complete BlockStatements

是举例说它很重要?我的意思是我应该跳过它还是有可能我会在某一天使用它们?

+0

你安装什么版本的Java?在命令行键入'java -version'来查找。 – 2010-05-16 00:14:20

+0

@蜥蜴爪哇版本“1.6.0_18”,我甚至指定,当我复制/粘贴你的代码时使用maven – London 2010-05-16 00:22:35

回答

2

这是声明一个类内部的enum正确的方法:

public class Main { 
    enum Foo { One, Two, Three } 

    public static void main(String args[]) { 
    System.out.println(Foo.One); 
    } 
} 

您使用enum关键字,不Enum,这是所有enum实例的超类。

+0

时使用1.6我从eclipse得到这个编译错误'枚举不能解析为输入' – London 2010-05-16 00:07:51

+2

@伦敦好吧,我知道那是什么。您的项目正在编译为Java 1.4的目标。您需要将其更改为Java 5或Java 6. Java枚举在1.4中不存在。这与您使用的JDK不同。该项目将设置使用哪种语言版本。 – cletus 2010-05-16 00:31:51

+0

你是对的,当我明确地配置maven编译插件使用1.6时,该项目如何与1.4编译。谢谢你的正确答案 – London 2010-05-16 11:08:15

0

删除';'。你这样声明Enum。

enum CoffeeSize { BIG, HUGE, OVERWHELMING } 

欲了解更多信息,请访问here

+0

同样的东西编译错误 – London 2010-05-16 00:12:15

+0

你正在使用哪个版本的Java?我能够编译并运行以下, 公共类的测试{ \t枚举CoffeeSize {大,巨大的,压倒性} 公共静态无效的主要(字符串ARGS []){ 的System.out.println(CoffeeSize。大); } } – Lalith 2010-05-16 00:30:09

1

从Java 5,enum的是一个关键字,所以资本是非常重要的。

至于你是否需要知道他们,这是真的取决于你。他们甚至不是几种版本的语言的一部分,但他们真的很高兴。从同一本书引述:

...你能保证编译器会阻止你除了BIGHUGE,或OVERWHELMING指派任何一个CoffeSize

有些人并不关心这一点,但我个人喜欢让编译器完成我所能做的所有工作。

(此外,Java Tutorials是学习基础知识的另一个重要来源。)

+1

我认为当我尝试创建枚举类时可能出现错误,我得到此错误“项目”进度不是符合J2SE 5.0的项目。“当我尝试通过以下方式声明枚举时你提供的书或教程中的例子我得到编译错误 – London 2010-05-16 00:16:15

+0

@伦敦:你能从命令行编译那个类吗? – 2010-05-16 00:25:07

+0

同样的错误,无论如何感谢您的时间我现在睡觉现在会试着谷歌的东西明天 – London 2010-05-16 00:31:26