#(磅)符号的含义

时间:2014-06-22 03:28:29

标签: java

Java是否为#(磅)符号提供了任何符号含义?它似乎是一个毫无意义的象征。

我已经看到它用作DecimalFormat的模式,但这并不是Java编译器赋予它意义。

2 个答案:

答案 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中公开了低级实现细节)。