【发布时间】:2019-10-08 08:54:23
【问题描述】:
选择三个正确答案(有效声明)。
(a)char a = '\u0061';
(b)char 'a' = 'a';
(c)char \u0061 = 'a';
(d)ch\u0061r a = 'a';
(e)ch'a'r a = 'a';
答案:(a)、(c) 和 (d)
书籍:
Java SCJP 认证程序员指南(第三版)
有人可以解释选项 (c) 和 (d) 的原因,因为 IDE (IntelliJ IDEA) 显示为红色:
无法解析符号“u0063”
【问题讨论】:
-
Java 允许在源代码中使用 unicode 字符:stackoverflow.com/questions/4448180/…
-
为什么 (c) 和 (d) 对您不起作用?你得到什么错误?
-
Java 将
\u0061转换为字符a,这使得 (c) 有效。由于它作为变量名是允许和可能的,所以在类型名中也是允许和可能的,所以ch\u0061r就是char,这使得 (d) 也有效。 -
"not working for me" 不是很有帮助(例如 you 是否转换 Unicode 序列?)如果使用(标准)Java 编译器,这必须工作,是其中之一编译器必须执行的第一个操作。见:Java Language Specification 3.3. Unicode Escapes
-
这是一个已知错误(15 年!):IDEABKL-89 和 IDEA-65898
标签: java intellij-idea unicode ide scjp