私は次のようにセットを使おうとしています:
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)
何が間違っているのか理解できません。誰か助けてくれませんか?
「複数のマーカー」とは、「この行に複数の問題がある」という意味です。
ただし、基本的な問題は、ステートメントをコンストラクター、メソッド、初期化子などに含めるのではなく、クラスに直接挿入しようとしていることです。
コードを次のように変更することをお勧めします。
static Set<String> languages = getDefaultLanguages();
private static Set<String> getDefaultLanguages()
{
Set<String> ret = new HashSet<String>();
ret.add("en");
ret.add("de");
return ret;
}
あなたは違法なことをしています:
これのいずれか(コードがクラスレベルの場合):
// 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");
}
これは、1行で複数のエラーが発生することを意味します。
下の写真は最高のものを説明しています。これらのエラーを解決する方法については、@ JonSkeetを参照してください。
。