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

标签 java eclipse compiler-errors

这可能看起来很奇怪,但注释中的文本导致我的代码无法编译。 (这是反编译后的代码;我通常不会这样格式化)。

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

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

 * Qualified Name:     us.talabrek.ultimateskyblock.uSkyBlock

 * JD-Core Version:    0.7.0.1

 */

这是它在 eclipse 中的样子。

Image of the oddness

以下是确切的错误消息(这些是唯一的错误消息,并且都在一条评论中):

    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

这对我来说很容易解决 - 我可以删除该评论 - 但为什么会发生这种情况?注释中的代码不应该被完全忽略吗?


编辑:作为附加说明,所有错误都在注释 block 内,删除注释 block 允许代码编译。这不是这里的问题。我的问题是为什么 java 根本不关心评论中的文本?

最佳答案

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

请注意,这是 Eclipse 的一个已知“错误”,请参阅:Bug 6677 Bug 10753

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

Except for comments, identifiers, and the contents of character and string literals, all input elements in a program are formed only from ASCII characters (or Unicode escapes which result in ASCII characters).

§3.1

关于java - 注释中的代码导致编译失败 - 为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25839301/

相关文章:

java - 抽象方法中应该有哪些参数

java - Android:Eclipse 无法打开

vba - Tempvar的错误91 “Object not Set”

c++ - 从构造函数调用虚函数和纯虚函数

c++ - “error: expected primary-expression before '。 ' token”出现了,我不知道为什么

java - 这种 Java 日期格式有什么问题?

java - 如何对字母数字字符串进行排序并更改顺序?

java - 同步适配器类中的单例对象

Eclipse Luna 在调试遇到断点时给出 NullPointerException

java - HTTP 状态 404(请求的资源 (/webApp/) 不可用)