Zig*_*gnd 14 java naming-conventions
美元符号($)是命名变量的有效字符,例如String superSecretFormula$;,但是当我们谈论命名约定时,我应该何时使用此符号?
例如,下划线最常用于分隔单词,因为不允许使用空格.
Ric*_*ett 15
您的问题标记为Java,但看起来您在询问类型字符,这些字符在Visual Basic中仍然受支持,但近来并未广泛使用(也很长时间).
这有点主观,但我认为可以说:永远不会
您可能希望为变量名称添加前缀的一种情况$是编写JavaScript代码以区分jQuery对象.
关于使用a启动变量名$,Oracle Java教程告诉我们:
变量的名称可以是任何合法标识符 - Unicode字母和数字的无限长度序列,以字母,美元符号"
$"或下划线字符"_" 开头.但是,惯例是始终用字母开头,而不是"$"或"_".
Hui*_*eng 11
从理论上讲,您可以在变量名中使用美元符号,但强烈建议不要这样做,因为该符号在编译器内部使用(例如内部或匿名类的名称).
请参考stackoverflow上的两个相关问题:变量名中$的含义是什么?和含有美元符号的Java类名无法对其进行编译,如果一个内部类存在
名称与合成字段冲突
McDowell引用了 JLS,这是一个由于名称与合成字段冲突而无法在 Oracle JDK 1.8.0_45 上编译的示例:
public class Assert {
static final boolean $assertionsDisabled = false;
public static void main(String[] args) {
assert System.currentTimeMillis() == 0L;
}
}
Run Code Online (Sandbox Code Playgroud)
问题是javac生成了一个$assertionsDisabled要实现的字段assert,它与我们的字段冲突,并javac说:
the symbol $assertionsDisabled conflicts with a compile synthesized symbol
Run Code Online (Sandbox Code Playgroud)
另请参阅:Java assert 关键字的作用是什么,何时应该使用?
| 归档时间: |
|
| 查看次数: |
19960 次 |
| 最近记录: |