Java 注释中的代码导致编译失败-为什么?
这似乎有些奇怪,但注释中的文本导致我的代码无法编译。(这是反编译代码;我通常不会这样格式化它) 注释(位于文件末尾;由反编译器自动添加): 这是一张它在eclipse中的样子的图片 下面是确切的错误消息(这些是唯一的错误消息,都在一条注释中): 说明资源路径位置类型 无法将Core解析为类型uSkyBlock.java/SO_unicodescapeerror/src/us/talabrek/ultimateskyblock line 2009 java问题 无效的unicode uSkyBlock.java/SO_unicodescapeerror/src/us/talabrek/ultimateskyblock行2005 java问题 无法将Qualified解析为类型uSkyBlock.java/SO_unicodescapeerror/src/us/talabrek/ultimateskyblock line 2007 java问题Java 注释中的代码导致编译失败-为什么?,java,eclipse,compiler-errors,Java,Eclipse,Compiler Errors,这似乎有些奇怪,但注释中的文本导致我的代码无法编译。(这是反编译代码;我通常不会这样格式化它) 注释(位于文件末尾;由反编译器自动添加): 这是一张它在eclipse中的样子的图片 下面是确切的错误消息(这些是唯一的错误消息,都在一条注释中): 说明资源路径位置类型 无法将Core解析为类型uSkyBlock.java/SO_unicodescapeerror/src/us/talabrek/ultimateskyblock line 2009 java问题 无效的unicode uSkyBl
plugins
的错误是eclipse抱怨输入错误:单词“plugins”拼写不正确
这对我来说很容易解决——我可以删除那个评论——但为什么会发生这种情况呢?注释中的代码不应该被完全忽略吗
编辑:作为补充说明,所有错误都在注释块内部,删除注释块允许代码编译。这不是问题所在。我的问题是,为什么java在这里关心注释中的文本?这可能是一个复制粘贴代码块,其中包含eclipse无法读取的unicode字符,尝试删除它并自己重写它问题是Eclipse将字符串
\u
解释为unicode字符的前缀,而在这里它只是注释中文件名的一部分。删除此错误的唯一方法是删除\u
部分,例如将其替换为\;u
如果要在javadoc中显示,或转义反斜杠字符:\\u
请注意,这是Eclipse的一个已知“bug”,请参见:
但这种行为与Java规范一致,因为Java注释可以包含unicode字符:
除了注释、标识符以及字符和
字符串文字,程序中的所有输入元素仅由
ASCII字符(或导致ASCII的Unicode转义)
字符)
这不是问题所在-删除一条注释后,代码将编译。我可以把它编译;我只是不明白为什么java甚至关心注释中的代码,并导致了三个错误。关于Qualified和Core的两个错误只是警告,可能会用它们成功编译代码,问题只在于无效的unicode,即使在注释井中,eclipse也无法读取,这是有道理的。但这是一个令人讨厌的行为。至少这是一个已知的bug(尽管他们似乎并不在意)。所以我不是唯一一个有这样问题的人。
/* 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