有时我会遇到aClass $ field而不是aClass.field这样的表达式。它在java中意味着什么?也许这是一个原始问题,但不可能在网上搜索$。肯定会给出非编程答案。所以,请帮助。
答案 0 :(得分:4)
$
文件表示根据JLS:
$字符只能在机械生成的源中使用 代码,或者很少访问旧系统上的预先存在的名称。
类文件中的$
表明(例如AClass$BClass.class
)BClass
嵌套在AClass
内。
A.B
仅适用于代码级别,A$B
位于生成的类级别。
答案 1 :(得分:2)
$
在Java中没有特殊含义。它可用于命名每个变量或方法,也可用作第一个(或唯一)字符。在示例中,以下类是完全合法的。
public class Test {
private int $;
private int $field;
private int my$field;
private void $() {
}
private void $method() {
}
private void my$method() {
}
}
但是,您无法使用$
来命名课程。当Java编译器在类B
中遇到内部类A
时,生成的.class
文件将被命名为A$B.class
。因此,使用$
字符命名类将导致编译错误。