“多个标记”是什么意思?

时间:2011-02-14 11:10:58

标签: java eclipse compiler-errors markers

我试图以下列方式使用集合:

static Set<String> languages = new HashSet<String>();
languages.add("en");
languages.add("de");

我收到Eclipse生成的以下错误消息:

> Multiple markers at this line
>   - Syntax error on token ""en"", delete this      token
>   - Syntax error on token(s), misplaced    construct(s)

我无法弄清楚我做错了什么。有人可以帮帮我吗?

3 个答案:

答案 0 :(得分:12)

“多个标记”只是意味着“此行有多个错误”。

但基本问题是你试图将语句直接插入到类中,而不是将它们放在构造函数,方法,初始化器等中。

我建议您将代码更改为以下内容:

static Set<String> languages = getDefaultLanguages();

private static Set<String> getDefaultLanguages()
{
    Set<String> ret = new HashSet<String>();
    ret.add("en");
    ret.add("de");
    return ret;
}

答案 1 :(得分:4)

你做的事非法:

这个(如果你的代码是在班级):

// field definition on class level
static Set<String> languages = new HashSet<String>();
// statements are not allowed here, the following lines are illegal:
languages.add("en");
languages.add("de");

或者这个:

private void foo(){
    // static keyword not legal inside methods
    static Set<String> languages = new HashSet<String>();
    languages.add("en");
    languages.add("de");

}

相反,您可以使用静态初始化程序初始化您的集合:

static Set<String> languages = new HashSet<String>();
static{
  languages.add("en");
  languages.add("de");
}

答案 2 :(得分:4)

这意味着在一行中您会遇到多个错误。

下面的图片描述了最好的。请参阅@Jon Skeet以了解如何解决这些错误。

enter image description here