我已經做了大量的搜索這個編譯器錯誤<identifier> expected
的含義,並沒有一個似乎適用於我的情況。真的很抱歉,如果這是重複的或基本的信息,但我找不到任何地方。Java編譯器錯誤沒有任何意義(<identifier>預計)
以下代碼正常工作。請注意,我是積極的myObject1
確實是HashSet<String>
所以演員陣容沒問題。
@SuppressWarnings("unchecked")
HashSet<String> s1 = (HashSet<String>) myObject1;
以下代碼無法正常工作。它會編譯,但帶有警告。
@SuppressWarnings("unchecked")
HashSet<String> s1;
s1 = (HashSet<String>) myObject1;
那麼我試試下面的代碼。
@SuppressWarnings("unchecked")
HashSet<String> s1;
@SuppressWarnings("unchecked")
s1 = (HashSet<String>) myObject1;
現在甚至拒絕編譯,給我<identifier> expected
錯誤令人費解的是我這麼多。我的命令行中的^
符號正好指向最後一行的=
之前。我不確定我究竟會在s1
和=
之間放置什麼。
任何想法?謝謝!
由於編譯器期望在那裏有一個聲明,所以's1'被解析爲一個類型名稱,當然它期望一個名爲next的類型爲's1'的實體。 –
在問題範圍之外,您應該使用'Set'而不是'HashSet '。即使你在開發階段知道實現類,你也應該考慮接口。如果稍後有人決定將代碼移動到'TreeSet',團隊*必須*將所有具有'HashSet'的文件改變並移動到'TreeSet'? –
感謝Luiggi,我知道你剛剛在另一個問題中告訴我同樣的事情,我仍然在這裏犯了同樣的錯誤......感謝提醒。 :-) – The111