注释中的代码导致编译失败 - 为什么?

Pok*_*u22 2 java eclipse compiler-errors

这可能看起来很奇怪,但注释中的文本导致我的代码无法编译.(这是反编译的代码;我不像这样规范地格式化它).

注释(在文件的最末端;由反编译器自动添加):

/* Location:           C:\Pokechu22\TestServer\plugins\uSkyBlock.jar

 * Qualified Name:     us.talabrek.ultimateskyblock.uSkyBlock

 * JD-Core Version:    0.7.0.1

 */
Run Code Online (Sandbox Code Playgroud)

这是eclipse中它的样子.

奇怪的形象

以下是确切的错误消息(这些是唯一的错误消息,并且都在一个注释中):

    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是日食抱怨错字:The word 'plugins' is not correctly spelled.

这对我来说很容易解决 - 我可以删除那条评论 - 但为什么会这样呢?不应该完全忽略评论中的代码吗?


编辑:作为补充说明,所有错误都在注释块内,删除注释块允许代码编译.这不是问题.我的问题是为什么java会关注评论中的文字呢?

Bla*_*arf 5

问题是\uEclipse 将字符串解释为unicode字符的前缀,而这里它只是注释中文件名的一部分.删除此错误的唯一方法是删除该\u部分,例如将其替换为\u是否要在javadoc中显示,或者转义反斜杠字符:\\u.

请注意,它是Eclipse的一个已知"错误",请参阅:错误6677 错误10753

这种行为与Java规范一致,因为Java注释可以包含unicode字符:

除了注释,标识符以及字符和字符串文字的内容之外,程序中的所有输入元素仅由ASCII字符(或导致ASCII字符的Unicode转义)组成.

3.1节