这可能看起来很奇怪,但评论中的文字导致我的代码无法编译。 (这是反编译的代码;我不像这样规范地格式化它。)
评论(在文件的最末端;由反编译器自动添加):
/* Location: C:\Pokechu22\TestServer\plugins\uSkyBlock.jar
* Qualified Name: us.talabrek.ultimateskyblock.uSkyBlock
* JD-Core Version: 0.7.0.1
*/
这是一张日食中的样子。
以下是确切的错误消息(这些是唯一的错误消息,并且都在该评论中):
Description Resource Path Location Type Core cannot be resolved to a type uSkyBlock.java /SO_UnicodeEscapeError/src/us/talabrek/ultimateskyblock line 2009 Java Problem Invalid unicode uSkyBlock.java /SO_UnicodeEscapeError/src/us/talabrek/ultimateskyblock line 2005 Java Problem Qualified cannot be resolved to a type uSkyBlock.java /SO_UnicodeEscapeError/src/us/talabrek/ultimateskyblock line 2007 Java Problem
plugins
的错误是eclipse抱怨输入错误:The word 'plugins' is not correctly spelled
。
这对我来说很容易解决 - 我可以删除那条评论 - 但为什么会这样呢?不应该完全忽略评论中的代码吗?
编辑:作为补充说明,所有错误都在注释块内,删除注释块允许代码编译。这不是问题。我的问题是为什么java会关注评论中的文字呢?
答案 0 :(得分:5)
问题是Eclipse将\u
解释为unicode字符的前缀,而这里它只是注释中文件名的一部分。删除此错误的唯一方法是删除\u
部分,例如将其替换为\u
(如果要在javadoc中显示),或者转义反斜杠字符:{{1 }}
请注意,这是一个已知的错误"的Eclipse,请参阅:Bug 6677 Bug 10753
这种行为与Java规范一致,因为Java注释可以包含unicode字符:
除了评论,标识符以及字符和内容 字符串文字,程序中的所有输入元素仅由 ASCII字符(或导致ASCII的Unicode转义) 字符)。
答案 1 :(得分:2)
这可能是一个代码的复制粘贴块,其中包含eclipse无法读取的unicode字符,请尝试删除它并自行重写