Java是否为#
(磅)符号提供了任何符号含义?它似乎是一个毫无意义的象征。
我已经看到它用作DecimalFormat
的模式,但这并不是Java编译器赋予它意义。
答案 0 :(得分:3)
不,编译器对#
符号没有任何特殊含义。但是,当它出现在用于特定目的的字符串中时,它具有特殊的含义,就像你指出的那样。
答案 1 :(得分:1)
Java语言规范包含编译器隐式转换的几种情况,其中使用符号#
。例如,来自§14.14.2. The enhanced for statement :
List<? extends Integer> l = ... for (float i : l) ...
将被翻译为:
for (Iterator<Integer> #i = l.iterator(); #i.hasNext(); ) { float #i0 = (Integer)#i.next(); ...
#i
是一个自动生成的标识符,它与发生增强for
语句时范围(第6.3节)中的任何其他标识符(自动生成的或其他标识符)不同。
目前还不清楚,这只是规范目的的符号,还是描述了编译器的实际内部细节(有时在JLS中公开了低级实现细节)。