Java中法律注释中的内容导致错误

Java中法律注释中的内容导致错误,java,unicode,compiler-errors,Java,Unicode,Compiler Errors,在coderanch链接上,我发现以下注释将给出编译器错误:- // Compiler Error due to this Unicode char '\u000a' 原因是,Unicode序列直接替换为它对应的实际字符。由于“\u000a”对应换行符,因此换行符放置在找到“\u000a”的位置 我的问题是,“有没有其他方式会因为注释而产生编译错误?”此错误不是由注释本身引起的。如果您在代码的其他地方使用相同的\u000a,您将得到相同类型的错误。例如: // This will give y

在coderanch链接上,我发现以下注释将给出编译器错误:-

// Compiler Error due to this Unicode char '\u000a'
原因是,Unicode序列直接替换为它对应的实际字符。由于“\u000a”对应换行符,因此换行符放置在找到“\u000a”的位置


我的问题是,“有没有其他方式会因为注释而产生编译错误?”

此错误不是由注释本身引起的。如果您在代码的其他地方使用相同的
\u000a
,您将得到相同类型的错误。例如:

// This will give you a similar error
char c = '\u000a';

在您的示例中,转义序列位于注释中这一事实并不意味着注释是导致错误的原因。

如果您在注释中定义了一个不推荐使用的函数(
@deprecated
),并且您将编译器设置为在使用不推荐使用的方法时抛出错误(至少内部Eclipse编译器可以配置为这是,AFAIK)

“编译器不仅在将程序解析为标记[…]之前将Unicode转义码转换为它们表示的字符,而且在丢弃注释和空白[JLS 3.2]之前也会这样做。”™ 谜题:陷阱,陷阱,和角落案件约书亚布洛赫,尼尔加弗特

下面几行是有效的Java代码:

\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020\u0020
\u0063\u006c\u0061\u0073\u0073\u0020\u0055\u0067\u006c\u0079
\u007b\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020
\u0020\u0020\u0020\u0020\u0073\u0074\u0061\u0074\u0069\u0063
\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028
\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0020
\u0020\u0020\u0020\u0020\u0061\u0072\u0067\u0073\u0029\u007b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074
\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0020
\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u0022\u002b
\u0022\u006f\u0072\u006c\u0064\u0022\u0029\u003b\u007d\u007d

是的,我已经从我在问题中提供的coderanch链接中了解到了这一点。我的问题是,我们是否也有任何其他Unicode字符会出现这种行为。或者有任何其他方式可以在注释中获取错误!所有字符都是Unicode字符;符号
\uxxx
只是在代码中编写它们的一种替代方式。因此,任何Unicode字符都是将字符放在错误位置的cape将导致编译器错误,与将相应字符本身放在错误位置的情况完全相同。
\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020\u0020
\u0063\u006c\u0061\u0073\u0073\u0020\u0055\u0067\u006c\u0079
\u007b\u0070\u0075\u0062\u006c\u0069\u0063\u0020\u0020\u0020
\u0020\u0020\u0020\u0020\u0073\u0074\u0061\u0074\u0069\u0063
\u0076\u006f\u0069\u0064\u0020\u006d\u0061\u0069\u006e\u0028
\u0053\u0074\u0072\u0069\u006e\u0067\u005b\u005d\u0020\u0020
\u0020\u0020\u0020\u0020\u0061\u0072\u0067\u0073\u0029\u007b
\u0053\u0079\u0073\u0074\u0065\u006d\u002e\u006f\u0075\u0074
\u002e\u0070\u0072\u0069\u006e\u0074\u006c\u006e\u0028\u0020
\u0022\u0048\u0065\u006c\u006c\u006f\u0020\u0077\u0022\u002b
\u0022\u006f\u0072\u006c\u0064\u0022\u0029\u003b\u007d\u007d