关于 this coderanch链接,我发现下面的注释会给编译器报错:-
// Compiler Error due to this Unicode char '\u000a'
原因是,Unicode 序列被直接替换为它对应的实际字符。由于'\u000a'对应于换行符,所以在找到'\u000a'的地方放置一个换行符。
我的问题是,“是否有任何其他方式因评论而导致编译错误?”
最佳答案
“编译器不仅在将程序解析为标记之前将 Unicode 转义符转换为它们所代表的字符 [...],而且在丢弃注释和空格之前也会这样做 [JLS 3.2]。” Java™ 谜题:陷阱、隐患和边角案例,作者:Joshua Bloch、Neal Gafter。
接下来的几行是有效的 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
关于java - 由于 Java 中的合法注释中的内容而导致的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9225124/