What does the “Multiple markers” mean?

 ̄綄美尐妖づ 提交于 2019-11-26 23:23:26

问题


I am trying to use sets in the following way:

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

And I get the following error message generated by Eclipse:

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

I cannot figure out what I am doing wrong. Can anybody please help me?


回答1:


"Multiple markers" just means "there's more than one thing wrong with this line".

But the basic problem is that you're trying to insert statements directly into a class, rather than having them in a constructor, method, initializer etc.

I suggest you change your code to something like this:

static Set<String> languages = getDefaultLanguages();

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



回答2:


You are doing something illegal:

Either this (if your code is at class level):

// 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");

or this:

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

}

Instead, you could use a static initializer to initialize your set:

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



回答3:


This means on a single line you are getting multiple errors.

The pic below describes the best. Refer @Jon Skeet to know how to resolve these errors.

.

来源:https://stackoverflow.com/questions/4991458/what-does-the-multiple-markers-mean

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!