Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是;多重标记”;什么意思?_Java_Eclipse_Compiler Errors_Markers - Fatal编程技术网

Java 什么是;多重标记”;什么意思?

Java 什么是;多重标记”;什么意思?,java,eclipse,compiler-errors,markers,Java,Eclipse,Compiler Errors,Markers,我尝试以以下方式使用集合: static Set<String> languages = new HashSet<String>(); languages.add("en"); languages.add("de"); 我不知道我做错了什么。有人能帮我吗?“多个标记”的意思是“这行有不止一个错误” 但基本问题是,您试图将语句直接插入到类中,而不是将它们放入构造函数、方法、初始值设定项等中 我建议您将代码更改为以下内容: static Set<String>

我尝试以以下方式使用集合:

static Set<String> languages = new HashSet<String>();
languages.add("en");
languages.add("de");
我不知道我做错了什么。有人能帮我吗?

“多个标记”的意思是“这行有不止一个错误”

但基本问题是,您试图将语句直接插入到类中,而不是将它们放入构造函数、方法、初始值设定项等中

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

static Set<String> languages = getDefaultLanguages();

private static Set<String> getDefaultLanguages()
{
    Set<String> ret = new HashSet<String>();
    ret.add("en");
    ret.add("de");
    return ret;
}
static Set languages=getDefaultLanguages();
私有静态集getDefaultLanguages()
{
Set ret=new HashSet();
补充说明(“en”);
补充说明(“de”);
返回ret;
}

您正在做非法的事情:

这两种情况之一(如果代码处于类级别):

//类级别的字段定义
静态集语言=新的HashSet();
//此处不允许使用语句,以下行是非法的:
语言。添加(“en”);
语言。添加(“de”);
或者这个:

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

}
private void foo(){
//静态关键字在方法内部不合法
静态集语言=新的HashSet();
语言。添加(“en”);
语言。添加(“de”);
}
相反,您可以使用静态初始值设定项来初始化集合:

static Set<String> languages = new HashSet<String>();
static{
  languages.add("en");
  languages.add("de");
}
static Set languages=new HashSet();
静止的{
语言。添加(“en”);
语言。添加(“de”);
}

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

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


谢谢你的回答。不过,我不明白。您所说的“将语句直接插入类”是什么意思。正确的语法是什么?@Roman:正确的语法是什么?你不能做你想做的事情——语句不能直接包含在类声明中;它们必须在初始值设定项中,等等。这就是为什么我提供了一个方法来创建集合并填充它,然后从变量声明中调用该方法。谢谢。现在我明白你的意思了。我可以为静态整型变量设置值,而无需使用
私有static
。我只是假设我可以像处理整数一样处理映射。但是,由于一些我不知道的原因,我不能。但是没关系。我只使用
私有静态
。谢谢。@Roman:不,这与整数无关。我不清楚您以前在做什么,但是如果您在变量声明中没有“静态”,那么它就不是静态变量。。。
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");
}