我试图以下列方式使用集合:
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)
我无法弄清楚我做错了什么。有人可以帮帮我吗?
答案 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以了解如何解决这些错误。
。